@schneideress/dashboardframework 17.0.4 → 17.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Component, ViewEncapsulation, Input, EventEmitter, ElementRef, Renderer2, ChangeDetectorRef, NgZone, Inject, Output, HostBinding, ViewChild, NgModule, Directive } from '@angular/core';
2
+ import { Injectable, Component, ViewEncapsulation, Input, EventEmitter, ElementRef, Renderer2, ChangeDetectorRef, NgZone, Inject, Output, HostBinding, ViewContainerRef, ViewChild, NgModule, Directive } from '@angular/core';
3
3
  import { of, Subject, debounceTime, takeUntil, switchMap, timer } from 'rxjs';
4
4
  import * as i3 from '@schneideress/ra-common';
5
5
  import { BaseService, RACommonModule } from '@schneideress/ra-common';
@@ -10,6 +10,7 @@ import { NotifierModule } from 'angular-notifier';
10
10
  import * as i2 from '@angular/common';
11
11
  import { NgForOf, NgStyle, NgIf } from '@angular/common';
12
12
  import { RaWidgetlockStatus, WidgetViewState, RADownloadType, RADownloadOption } from '@schneideress/widgetframework';
13
+ import { loadRemoteModule } from '@angular-architects/module-federation';
13
14
  import * as i6 from '@schneideress/common-controls';
14
15
  import { RACommonControlsModule } from '@schneideress/common-controls';
15
16
  import { BrowserModule } from '@angular/platform-browser';
@@ -72,6 +73,12 @@ class RaDashboardService extends BaseService {
72
73
  /**To Update widgetInfo in database */
73
74
  updateWidget(widgetInfo, appConfig) {
74
75
  this.baseUrl = appConfig.apiBaseUrl;
76
+ let info = {};
77
+ info.widgetConfigInfo = widgetInfo.widgetConfigInfo;
78
+ info.widgetInstanceId = widgetInfo.widgetInstanceId;
79
+ info.widgetTitle = widgetInfo.widgetTitle;
80
+ info.widgetType = widgetInfo.widgetType;
81
+ info.widgetId = widgetInfo.widgetId;
75
82
  return this.post('widget/UpdateUserWidget', widgetInfo);
76
83
  }
77
84
  /** To Move or change position if current widget container*/
@@ -80,10 +87,10 @@ class RaDashboardService extends BaseService {
80
87
  /** To Copy Current widget with same configuration*/
81
88
  copyWidget(widgetInfo) {
82
89
  }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaDashboardService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
84
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaDashboardService, providedIn: 'root' }); }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RaDashboardService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RaDashboardService, providedIn: 'root' }); }
85
92
  }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaDashboardService, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RaDashboardService, decorators: [{
87
94
  type: Injectable,
88
95
  args: [{
89
96
  providedIn: 'root'
@@ -143,6 +150,12 @@ var RAEvent;
143
150
  RAEvent["UpdateAppledFiterForInapplicableFilter"] = "UpdateAppledFiterForInapplicableFilter";
144
151
  /**show inapplicable filter message in global filter flyout */
145
152
  RAEvent["ShowInapplicableFilterMessage"] = "ShowInapplicableFilterMessage";
153
+ /** Bulk Action Clicked */
154
+ RAEvent["BulkActionClick"] = "BulkActionClick";
155
+ /** Global Filter Clicked */
156
+ /** When user change the curated filter(eg:data streams), system will create/delete widgets */
157
+ RAEvent["CuratedFilterChange"] = "CuratedFilterChange";
158
+ RAEvent["GlobalFilterClick"] = "GlobalFilterClick";
146
159
  })(RAEvent || (RAEvent = {}));
147
160
  var RAEventKey;
148
161
  (function (RAEventKey) {
@@ -156,9 +169,9 @@ const GridsterConfigDefaultSettings = {
156
169
  margin: 10,
157
170
  outerMargin: true,
158
171
  outerMarginTop: 10,
159
- outerMarginRight: 10,
172
+ outerMarginRight: 0,
160
173
  outerMarginBottom: 30,
161
- outerMarginLeft: 10,
174
+ outerMarginLeft: 0,
162
175
  useTransformPositioning: true,
163
176
  mobileBreakpoint: 640,
164
177
  minCols: 10,
@@ -263,7 +276,7 @@ class RADashboardResponsiveService {
263
276
  check = true;
264
277
  return check;
265
278
  }
266
- getGridsterConfig(isWidgetMgmnt) {
279
+ getGridsterConfig(isWidgetMgmnt, resize, canMove) {
267
280
  let config = GridsterConfigDefaultSettings;
268
281
  config.minCols = this.currentResInfo.maxCols;
269
282
  config.maxCols = this.currentResInfo.maxCols;
@@ -285,6 +298,13 @@ class RADashboardResponsiveService {
285
298
  config.swap = true;
286
299
  config.draggable.enabled = true;
287
300
  }
301
+ if (!resize) {
302
+ config.resizable.enabled = false;
303
+ config.swap = false;
304
+ }
305
+ if (!canMove) {
306
+ config.draggable.enabled = false;
307
+ }
288
308
  return config;
289
309
  }
290
310
  /**To map IwidgetInfo object to gridsterItem */
@@ -292,6 +312,9 @@ class RADashboardResponsiveService {
292
312
  if (widget.widgetSettings) {
293
313
  widget.settings = JSON.parse(widget.widgetSettings);
294
314
  }
315
+ if (widget.templateSettings) {
316
+ widget.templateWidgetSettings = JSON.parse(widget.templateSettings);
317
+ }
295
318
  let gridsterItem = {
296
319
  cols: this.getWidth(widget.width),
297
320
  rows: this.getHeight(widget.height),
@@ -333,10 +356,10 @@ class RADashboardResponsiveService {
333
356
  }
334
357
  return height;
335
358
  }
336
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardResponsiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
337
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardResponsiveService, providedIn: "root" }); }
359
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardResponsiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
360
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardResponsiveService, providedIn: "root" }); }
338
361
  }
339
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardResponsiveService, decorators: [{
362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardResponsiveService, decorators: [{
340
363
  type: Injectable,
341
364
  args: [{ providedIn: "root" }]
342
365
  }], ctorParameters: () => [] });
@@ -988,10 +1011,10 @@ class GridsterPreviewComponent {
988
1011
  this.renderer.setStyle(this.el, 'display', '');
989
1012
  }
990
1013
  }
991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterPreviewComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
992
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: GridsterPreviewComponent, isStandalone: true, selector: "gridster-preview", inputs: { previewStyle$: "previewStyle$", gridRenderer: "gridRenderer" }, ngImport: i0, template: '', isInline: true, styles: ["gridster-preview{position:absolute;display:none;background:#00000026}\n"], encapsulation: i0.ViewEncapsulation.None }); }
1014
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterPreviewComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1015
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: GridsterPreviewComponent, isStandalone: true, selector: "gridster-preview", inputs: { previewStyle$: "previewStyle$", gridRenderer: "gridRenderer" }, ngImport: i0, template: '', isInline: true, styles: ["gridster-preview{position:absolute;display:none;background:#00000026}\n"], encapsulation: i0.ViewEncapsulation.None }); }
993
1016
  }
994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterPreviewComponent, decorators: [{
1017
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterPreviewComponent, decorators: [{
995
1018
  type: Component,
996
1019
  args: [{ selector: 'gridster-preview', template: '', encapsulation: ViewEncapsulation.None, standalone: true, styles: ["gridster-preview{position:absolute;display:none;background:#00000026}\n"] }]
997
1020
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { previewStyle$: [{
@@ -1867,10 +1890,10 @@ class GridsterComponent {
1867
1890
  }
1868
1891
  return 0;
1869
1892
  }
1870
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterComponent, deps: [{ token: ElementRef }, { token: Renderer2 }, { token: ChangeDetectorRef }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1871
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: GridsterComponent, isStandalone: true, selector: "gridster", inputs: { options: "options" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"gridster-column\"\r\n *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"\r\n></div>\r\n<div\r\n class=\"gridster-row\"\r\n *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"\r\n></div>\r\n<ng-content></ng-content>\r\n<gridster-preview\r\n [gridRenderer]=\"gridRenderer\"\r\n [previewStyle$]=\"previewStyle$\"\r\n class=\"gridster-preview\"\r\n></gridster-preview>\r\n", styles: ["gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: GridsterPreviewComponent, selector: "gridster-preview", inputs: ["previewStyle$", "gridRenderer"] }], encapsulation: i0.ViewEncapsulation.None }); }
1893
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterComponent, deps: [{ token: ElementRef }, { token: Renderer2 }, { token: ChangeDetectorRef }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1894
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: GridsterComponent, isStandalone: true, selector: "gridster", inputs: { options: "options" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"gridster-column\"\r\n *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"\r\n></div>\r\n<div\r\n class=\"gridster-row\"\r\n *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"\r\n></div>\r\n<ng-content></ng-content>\r\n<gridster-preview\r\n [gridRenderer]=\"gridRenderer\"\r\n [previewStyle$]=\"previewStyle$\"\r\n class=\"gridster-preview\"\r\n></gridster-preview>\r\n", styles: ["gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: GridsterPreviewComponent, selector: "gridster-preview", inputs: ["previewStyle$", "gridRenderer"] }], encapsulation: i0.ViewEncapsulation.None }); }
1872
1895
  }
1873
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterComponent, decorators: [{
1896
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterComponent, decorators: [{
1874
1897
  type: Component,
1875
1898
  args: [{ selector: 'gridster', encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgForOf, NgStyle, GridsterPreviewComponent], template: "<div\r\n class=\"gridster-column\"\r\n *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"\r\n></div>\r\n<div\r\n class=\"gridster-row\"\r\n *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"\r\n></div>\r\n<ng-content></ng-content>\r\n<gridster-preview\r\n [gridRenderer]=\"gridRenderer\"\r\n [previewStyle$]=\"previewStyle$\"\r\n class=\"gridster-preview\"\r\n></gridster-preview>\r\n", styles: ["gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"] }]
1876
1899
  }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
@@ -3581,6 +3604,7 @@ class GridsterItemComponent {
3581
3604
  }
3582
3605
  ngOnDestroy() {
3583
3606
  this.gridster.removeItem(this);
3607
+ this.gridster.movingItem = null;
3584
3608
  this.drag.destroy();
3585
3609
  this.resize.destroy();
3586
3610
  this.gridster = this.drag = this.resize = null;
@@ -3605,6 +3629,7 @@ class GridsterItemComponent {
3605
3629
  this.item.initCallback(this.item, this);
3606
3630
  }
3607
3631
  if (this.gridster.options.itemInitCallback) {
3632
+ this.item.curRowHeight = this.gridster.curRowHeight;
3608
3633
  this.gridster.options.itemInitCallback(this.item, this);
3609
3634
  }
3610
3635
  this.itemInit.next({ item: this.item, itemComponent: this });
@@ -3623,6 +3648,7 @@ class GridsterItemComponent {
3623
3648
  }
3624
3649
  itemChanged() {
3625
3650
  if (this.gridster.options.itemChangeCallback) {
3651
+ this.item.curRowHeight = this.gridster.curRowHeight;
3626
3652
  this.gridster.options.itemChangeCallback(this.item, this);
3627
3653
  }
3628
3654
  this.itemChange.next({ item: this.item, itemComponent: this });
@@ -3709,10 +3735,10 @@ class GridsterItemComponent {
3709
3735
  }
3710
3736
  return 0;
3711
3737
  }
3712
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterItemComponent, deps: [{ token: ElementRef }, { token: GridsterComponent }, { token: Renderer2 }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3713
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: GridsterItemComponent, isStandalone: true, selector: "gridster-item", inputs: { item: "item" }, outputs: { itemInit: "itemInit", itemChange: "itemChange", itemResize: "itemResize" }, host: { properties: { "style.z-index": "this.zIndex" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.s && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.e && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.n && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.w && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.se && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.ne && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.sw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.nw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"\r\n></div>\r\n", styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-resizing,gridster-item.gridster-item-moving{transition:0s;z-index:2;box-shadow:0 0 5px 5px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
3738
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterItemComponent, deps: [{ token: ElementRef }, { token: GridsterComponent }, { token: Renderer2 }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3739
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: GridsterItemComponent, isStandalone: true, selector: "gridster-item", inputs: { item: "item" }, outputs: { itemInit: "itemInit", itemChange: "itemChange", itemResize: "itemResize" }, host: { properties: { "style.z-index": "this.zIndex" } }, usesOnChanges: true, ngImport: i0, template: "<ng-content></ng-content>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.s && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.e && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.n && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.w && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.se && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.ne && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.sw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.nw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"\r\n></div>\r\n", styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-resizing,gridster-item.gridster-item-moving{transition:0s;z-index:2;box-shadow:0 0 5px 5px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None }); }
3714
3740
  }
3715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterItemComponent, decorators: [{
3741
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterItemComponent, decorators: [{
3716
3742
  type: Component,
3717
3743
  args: [{ selector: 'gridster-item', encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgIf], template: "<ng-content></ng-content>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.s && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-s\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.e && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-e\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.n && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-n\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.w && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-w\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.se && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-se\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.ne && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-ne\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.sw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-sw\"\r\n></div>\r\n<div\r\n (mousedown)=\"resize.dragStartDelay($event)\"\r\n (touchstart)=\"resize.dragStartDelay($event)\"\r\n *ngIf=\"resize.resizableHandles?.nw && resize.resizeEnabled\"\r\n class=\"gridster-item-resizable-handler handle-nw\"\r\n></div>\r\n", styles: ["gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;user-select:text}gridster-item.gridster-item-moving{cursor:move}gridster-item.gridster-item-resizing,gridster-item.gridster-item-moving{transition:0s;z-index:2;box-shadow:0 0 5px 5px #0003,0 6px 10px #00000024,0 1px 18px #0000001f}.gridster-item-resizable-handler{position:absolute;z-index:2}.gridster-item-resizable-handler.handle-n{cursor:ns-resize;height:10px;right:0;top:0;left:0}.gridster-item-resizable-handler.handle-e{cursor:ew-resize;width:10px;bottom:0;right:0;top:0}.gridster-item-resizable-handler.handle-s{cursor:ns-resize;height:10px;right:0;bottom:0;left:0}.gridster-item-resizable-handler.handle-w{cursor:ew-resize;width:10px;left:0;top:0;bottom:0}.gridster-item-resizable-handler.handle-ne{cursor:ne-resize;width:10px;height:10px;right:0;top:0}.gridster-item-resizable-handler.handle-nw{cursor:nw-resize;width:10px;height:10px;left:0;top:0}.gridster-item-resizable-handler.handle-se{cursor:se-resize;width:0;height:0;right:0;bottom:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent}.gridster-item-resizable-handler.handle-sw{cursor:sw-resize;width:10px;height:10px;left:0;bottom:0}gridster-item:hover .gridster-item-resizable-handler.handle-se{border-color:transparent transparent #ccc}\n"] }]
3718
3744
  }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
@@ -3768,10 +3794,10 @@ class LockTooltip {
3768
3794
  this.domService.removeComponent(comp);
3769
3795
  });
3770
3796
  }
3771
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LockTooltip, deps: [{ token: i3.DomService }], target: i0.ɵɵFactoryTarget.Component }); }
3772
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: LockTooltip, selector: "ra-lock-tooltip", ngImport: i0, template: "<div class=\"lock-popup-content light widget-config-item\"\r\n [ngStyle]=\"{'top': containerTop,'bottom':containerBottom,'position':'fixed','left':containerLeft,'z-index': '9999','width':'250px','min-height':'fit-content'}\">\r\n <div *ngIf=\"data && !template\">\r\n <label style=\"color: #D9F0FA;\">\r\n {{title}}:\r\n </label>\r\n <div style=\"color: white;\">\r\n <label class=\"bold\" style=\"margin-bottom: 0px;width: 100%;\" *ngFor=\"let item of data\">\r\n {{item}}\r\n </label>\r\n </div>\r\n <hr style=\"background-color: white;\">\r\n <div style=\"color: #D9F0FA;\">\r\n <label>{{footer}}</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!data && template\">\r\n <ng-container *ngTemplateOutlet=\"template\">\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".lock-popup-content{margin-top:8px;position:absolute;right:0;top:79%;box-shadow:0 8px 16px 8px #0003;z-index:899;font-size:12px;min-width:220px!important;min-height:112px;background-color:#219bfd;opacity:.9;padding:15px;color:#fff}.widget-config-item i{font-size:17px;color:#42b4e6}.widget-config-item span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
3797
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LockTooltip, deps: [{ token: i3.DomService }], target: i0.ɵɵFactoryTarget.Component }); }
3798
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: LockTooltip, selector: "ra-lock-tooltip", ngImport: i0, template: "<div class=\"lock-popup-content light widget-config-item\"\r\n [ngStyle]=\"{'top': containerTop,'bottom':containerBottom,'position':'fixed','left':containerLeft,'z-index': '9999','width':'250px','min-height':'fit-content'}\">\r\n <div *ngIf=\"data && !template\">\r\n <label style=\"color: #D9F0FA;\">\r\n {{title}}:\r\n </label>\r\n <div style=\"color: white;\">\r\n <label class=\"bold\" style=\"margin-bottom: 0px;width: 100%;\" *ngFor=\"let item of data\">\r\n {{item}}\r\n </label>\r\n </div>\r\n <hr style=\"background-color: white;\">\r\n <div style=\"color: #D9F0FA;\">\r\n <label>{{footer}}</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!data && template\">\r\n <ng-container *ngTemplateOutlet=\"template\">\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".lock-popup-content{margin-top:8px;position:absolute;right:0;top:79%;box-shadow:0 8px 16px 8px #0003;z-index:899;font-size:12px;min-width:220px!important;min-height:112px;background-color:#219bfd;opacity:.9;padding:15px;color:#fff}.widget-config-item i{font-size:17px;color:#42b4e6}.widget-config-item span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
3773
3799
  }
3774
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: LockTooltip, decorators: [{
3800
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: LockTooltip, decorators: [{
3775
3801
  type: Component,
3776
3802
  args: [{ selector: 'ra-lock-tooltip', template: "<div class=\"lock-popup-content light widget-config-item\"\r\n [ngStyle]=\"{'top': containerTop,'bottom':containerBottom,'position':'fixed','left':containerLeft,'z-index': '9999','width':'250px','min-height':'fit-content'}\">\r\n <div *ngIf=\"data && !template\">\r\n <label style=\"color: #D9F0FA;\">\r\n {{title}}:\r\n </label>\r\n <div style=\"color: white;\">\r\n <label class=\"bold\" style=\"margin-bottom: 0px;width: 100%;\" *ngFor=\"let item of data\">\r\n {{item}}\r\n </label>\r\n </div>\r\n <hr style=\"background-color: white;\">\r\n <div style=\"color: #D9F0FA;\">\r\n <label>{{footer}}</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!data && template\">\r\n <ng-container *ngTemplateOutlet=\"template\">\r\n </ng-container>\r\n </div>\r\n</div>", styles: [".lock-popup-content{margin-top:8px;position:absolute;right:0;top:79%;box-shadow:0 8px 16px 8px #0003;z-index:899;font-size:12px;min-width:220px!important;min-height:112px;background-color:#219bfd;opacity:.9;padding:15px;color:#fff}.widget-config-item i{font-size:17px;color:#42b4e6}.widget-config-item span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}\n"] }]
3777
3803
  }], ctorParameters: () => [{ type: i3.DomService }] });
@@ -3822,8 +3848,11 @@ class RAWidgetContainer {
3822
3848
  this.showExcell = true;
3823
3849
  this.hideTitle = false;
3824
3850
  this.inapplicableFilters = [];
3851
+ this.canLoadData = false;
3825
3852
  this.widgetDeleted = new EventEmitter();
3826
3853
  this.updateAppliedFilters = new EventEmitter();
3854
+ this.dataLoaded = new EventEmitter();
3855
+ this.widgetLoaded = new EventEmitter();
3827
3856
  this.isWidgetStateApplicable = false;
3828
3857
  this.widgetEmptyState = '';
3829
3858
  this.lockVisible = false;
@@ -3857,19 +3886,32 @@ class RAWidgetContainer {
3857
3886
  });
3858
3887
  });
3859
3888
  }
3860
- if (this.widgetElement && changes['globalFilter'] && changes['globalFilter'].currentValue != changes['globalFilter'].previousValue) {
3861
- let filterObj = this.getParsedConfig(this.globalFilter);
3862
- if (filterObj.WidgetInstanceId) {
3863
- if (this.data.widgetInfo.widgetInstanceId != filterObj.WidgetInstanceId)
3864
- this.refreshWidget(this.data.widgetInfo);
3889
+ if (this.widgetElement) {
3890
+ if (changes.bulkActionData && changes.bulkActionData.currentValue != changes.bulkActionData.previousValue) {
3891
+ if (typeof this.widgetElement.bulkActionClicked === "function") {
3892
+ this.widgetElement.bulkActionClicked(this.bulkActionData);
3893
+ }
3865
3894
  }
3866
- else {
3867
- this.refreshWidget(this.data.widgetInfo);
3895
+ if (changes.globalFilter && changes.globalFilter.currentValue != changes.globalFilter.previousValue) {
3896
+ if (!this.dashboardInfo.curatedFilters) {
3897
+ let filterObj = this.getParsedConfig(this.globalFilter);
3898
+ if (filterObj.WidgetInstanceId) {
3899
+ if (this.data.widgetInfo.widgetInstanceId != filterObj.WidgetInstanceId)
3900
+ this.refreshWidget(this.data.widgetInfo);
3901
+ }
3902
+ else {
3903
+ //this.refreshWidget(this.data.widgetInfo);
3904
+ }
3905
+ }
3906
+ }
3907
+ if (changes['width'] && changes['width'].currentValue != changes['width'].previousValue ||
3908
+ (changes['height'] && changes['height'].currentValue != changes['height'].previousValue)) {
3909
+ this.invokeWidgetResizedEvent();
3868
3910
  }
3869
3911
  }
3870
- if (changes['width'] && changes['width'].currentValue != changes['width'].previousValue ||
3871
- (changes['height'] && changes['height'].currentValue != changes['height'].previousValue)) {
3872
- this.invokeWidgetResizedEvent();
3912
+ if (changes.canLoadData && changes.canLoadData.currentValue != changes.canLoadData.previousValue) {
3913
+ if (this.canLoadData)
3914
+ this.refreshWidget(this.data.widgetInfo);
3873
3915
  }
3874
3916
  }
3875
3917
  invokeWidgetResizedEvent() {
@@ -4028,107 +4070,228 @@ class RAWidgetContainer {
4028
4070
  }
4029
4071
  this.detailPageUrl = widgetInfo.detailPageUrl;
4030
4072
  let me = this;
4031
- this.dashboardService.loadExternalScript(widgetInfo.scriptUrl, () => {
4032
- this.setNotConfiguredState(widgetInfo);
4033
- let appModule = this.data.widgetInfo.widgetName;
4034
- if (this.data.widgetInfo.applicationModule && this.data.widgetInfo.applicationModule.length > 0) {
4035
- appModule = this.data.widgetInfo.applicationModule;
4036
- }
4037
- this.translateService.loadTranslations(this.appConfig.appManagementBaseUrl, appModule, false).then(() => {
4038
- me.widgetElement = document.createElement(widgetInfo.customTag);
4039
- me.widgetElement.setAttribute("widget-instance-id", widgetInfo.widgetInstanceId);
4040
- let handler = function (event) {
4041
- setTimeout(async () => {
4042
- me.widgetElement.addEventListener('on-widget-respond', (e) => {
4043
- var type = e.detail.type;
4044
- switch (type) {
4045
- case 'onDataLoad':
4046
- if (e.detail.data)
4047
- me.showPanel = true;
4048
- else
4049
- me.showPanel = false;
4050
- break;
4051
- case 'onConfigEditClicked':
4052
- me.editWidget();
4053
- break;
4054
- case 'onEnableDefaultState':
4055
- me.setEmptyState(e.detail.data);
4056
- break;
4057
- case 'onSetTitleUnderline':
4058
- if (e.detail.data == true)
4059
- me.enableTitleLine = true;
4060
- else
4061
- me.enableTitleLine = me.enableTitleLineActual;
4062
- break;
4063
- case 'onWidgetTitleHidden':
4064
- if (e.detail.data == true)
4065
- me.hideTitle = true;
4066
- else
4067
- me.hideTitle = false;
4068
- break;
4069
- case 'onUpdateLockData':
4070
- me.setLock(e.detail.data);
4071
- break;
4072
- case 'onGlobalFilterApplicableCheck':
4073
- me.setInapplicableFilters(e.detail.data, widgetInfo.widgetInstanceId);
4074
- break;
4075
- default:
4076
- break;
4073
+ this.isCustomElement = false;
4074
+ if (this.isCustomElement) {
4075
+ this.dashboardService.loadExternalScript(widgetInfo.scriptUrl, () => {
4076
+ this.setNotConfiguredState(widgetInfo);
4077
+ let appModule = this.data.widgetInfo.widgetName;
4078
+ if (this.data.widgetInfo.applicationModule && this.data.widgetInfo.applicationModule.length > 0) {
4079
+ appModule = this.data.widgetInfo.applicationModule;
4080
+ }
4081
+ this.translateService.loadTranslations(this.appConfig.appManagementBaseUrl, appModule, false).then(() => {
4082
+ me.widgetElement = document.createElement(widgetInfo.customTag);
4083
+ me.widgetElement.setAttribute("widget-instance-id", widgetInfo.widgetInstanceId);
4084
+ let handler = function (event) {
4085
+ setTimeout(async () => {
4086
+ me.widgetElement.addEventListener('on-widget-respond', (e) => {
4087
+ var type = e.detail.type;
4088
+ switch (type) {
4089
+ case 'onDataLoad':
4090
+ if (e.detail.data)
4091
+ me.showPanel = true;
4092
+ else
4093
+ me.showPanel = false;
4094
+ if (!me.data.dataLoaded) {
4095
+ me.data.dataLoaded = true;
4096
+ me.dataLoaded.emit(me.widgetElement);
4097
+ }
4098
+ break;
4099
+ case 'onConfigEditClicked':
4100
+ me.editWidget();
4101
+ break;
4102
+ case 'onEnableDefaultState':
4103
+ me.setEmptyState(e.detail.data);
4104
+ break;
4105
+ case 'onSetTitleUnderline':
4106
+ if (e.detail.data == true)
4107
+ me.enableTitleLine = true;
4108
+ else
4109
+ me.enableTitleLine = me.enableTitleLineActual;
4110
+ break;
4111
+ case 'onWidgetTitleHidden':
4112
+ if (e.detail.data == true)
4113
+ me.hideTitle = true;
4114
+ else
4115
+ me.hideTitle = false;
4116
+ break;
4117
+ case 'onUpdateLockData':
4118
+ me.setLock(e.detail.data);
4119
+ break;
4120
+ case 'onGlobalFilterApplicableCheck':
4121
+ me.setInapplicableFilters(e.detail.data, widgetInfo.widgetInstanceId);
4122
+ break;
4123
+ default:
4124
+ break;
4125
+ }
4126
+ });
4127
+ if (typeof (me.widgetElement.titleLineEnabled) != 'undefined') {
4128
+ let titleLineEnabled = me.widgetElement.titleLineEnabled();
4129
+ if (titleLineEnabled) {
4130
+ me.enableTitleLine = titleLineEnabled;
4131
+ me.enableTitleLineActual = titleLineEnabled;
4132
+ }
4133
+ }
4134
+ me.editText = me.translateService.translate('Common.edit');
4135
+ if (me.translateService.translate('Common.edit').length > 6) {
4136
+ me.editText = (me.translateService.translate('Common.edit').substring(0, 6) + '...');
4137
+ me.editToolTipValue = me.translateService.translate('Common.edit');
4138
+ me.editToolTipWidth = "300px";
4139
+ }
4140
+ me.copyText = me.translateService.translate('Common.copy');
4141
+ if (me.translateService.translate('Common.copy').length > 6) {
4142
+ me.copyText = (me.translateService.translate('Common.copy').substring(0, 6) + '...');
4143
+ me.copyToolTipValue = me.translateService.translate('Common.copy');
4144
+ me.copyToolTipWidth = "300px";
4145
+ }
4146
+ me.moveText = me.translateService.translate('Common.move');
4147
+ if (me.translateService.translate('Common.move').length > 6) {
4148
+ me.moveText = (me.translateService.translate('Common.move').substring(0, 6) + '...');
4149
+ me.moveToolTipValue = me.translateService.translate('Common.move');
4150
+ me.moveToolTipWidth = "300px";
4151
+ }
4152
+ me.excelText = me.translateService.translate('Common.excel');
4153
+ if (me.translateService.translate('Common.excel').length > 6) {
4154
+ me.excelText = (me.translateService.translate('Common.excel').substring(0, 6) + '...');
4155
+ me.excelToolTipValue = me.translateService.translate('Common.excel');
4156
+ me.excelToolTipWidth = "300px";
4077
4157
  }
4158
+ me.deleteText = me.translateService.translate('Common.delete');
4159
+ if (me.translateService.translate('Common.delete').length > 6) {
4160
+ me.deleteText = (me.translateService.translate('Common.delete').substring(0, 6) + '...');
4161
+ me.deleteToolTipValue = me.translateService.translate('Common.delete');
4162
+ me.deleteToolTipWidth = "300px";
4163
+ }
4164
+ me.isWidgetLoaded = true;
4165
+ widgetConfigFilter.appConfig = me.appConfig;
4166
+ widgetConfigFilter.widgetInfo = widgetInfo;
4167
+ widgetConfigFilter.configChanges = me.getConfigChanges(false);
4168
+ widgetConfigFilter.widgetInfo.widgetName = widgetInfo.widgetName;
4169
+ widgetConfigFilter.globalFilter = me.globalFilter;
4170
+ widgetConfigFilter.dashboardInfo = me.dashboardInfo;
4171
+ //this.widgetElement.loadContent(widgetConfigFilter);
4172
+ me.widgetLoaded.emit();
4173
+ await me.setLock(widgetConfigFilter.config);
4174
+ await me.setDownloadIcon();
4078
4175
  });
4079
- if (typeof (me.widgetElement.titleLineEnabled) != 'undefined') {
4080
- let titleLineEnabled = me.widgetElement.titleLineEnabled();
4081
- if (titleLineEnabled) {
4082
- me.enableTitleLine = titleLineEnabled;
4083
- me.enableTitleLineActual = titleLineEnabled;
4176
+ }.bind(this);
4177
+ this.widgetElementHandler = handler;
4178
+ document.body.addEventListener('widgetinitiated' + widgetInfo.widgetInstanceId, handler);
4179
+ this.ctlWidget.nativeElement.appendChild(this.widgetElement);
4180
+ });
4181
+ });
4182
+ }
4183
+ else {
4184
+ widgetInfo.scriptUrl = '/assets/widgets/document/ra-document-widget/main.js';
4185
+ widgetInfo.component = 'RADocumentwidgetComponent';
4186
+ loadRemoteModule({
4187
+ type: 'module',
4188
+ remoteEntry: widgetInfo.scriptUrl,
4189
+ exposedModule: './' + widgetInfo.component
4190
+ }).then((m) => {
4191
+ var component = me.ctlWidgetModule.createComponent(m[widgetInfo.component]);
4192
+ let instance = component.instance;
4193
+ let widgetElement = component.location.nativeElement;
4194
+ this.setNotConfiguredState(widgetInfo);
4195
+ let appModule = this.data.widgetInfo.widgetName;
4196
+ if (this.data.widgetInfo.applicationModule && this.data.widgetInfo.applicationModule.length > 0) {
4197
+ appModule = this.data.widgetInfo.applicationModule;
4198
+ }
4199
+ this.translateService.loadTranslations(this.appConfig.appManagementBaseUrl, appModule, false).then(() => {
4200
+ me.widgetElement = widgetElement;
4201
+ me.widgetElement.setAttribute("widget-instance-id", widgetInfo.widgetInstanceId);
4202
+ instance.widgetInstanceId = widgetInfo.widgetInstanceId;
4203
+ let handler = function (event) {
4204
+ setTimeout(async () => {
4205
+ instance.onWidgetRespond.subscribe((e) => {
4206
+ var type = e.type;
4207
+ switch (type) {
4208
+ case 'onDataLoad':
4209
+ if (e.data)
4210
+ me.showPanel = true;
4211
+ else
4212
+ me.showPanel = false;
4213
+ break;
4214
+ case 'onConfigEditClicked':
4215
+ me.editWidget();
4216
+ break;
4217
+ case 'onEnableDefaultState':
4218
+ me.setEmptyState(e.data);
4219
+ break;
4220
+ case 'onSetTitleUnderline':
4221
+ if (e.data == true)
4222
+ me.enableTitleLine = true;
4223
+ else
4224
+ me.enableTitleLine = me.enableTitleLineActual;
4225
+ break;
4226
+ case 'onWidgetTitleHidden':
4227
+ if (e.data == true)
4228
+ me.hideTitle = true;
4229
+ else
4230
+ me.hideTitle = false;
4231
+ break;
4232
+ case 'onUpdateLockData':
4233
+ me.setLock(e.data);
4234
+ break;
4235
+ case 'onGlobalFilterApplicableCheck':
4236
+ me.setInapplicableFilters(e.data, widgetInfo.widgetInstanceId);
4237
+ break;
4238
+ default:
4239
+ break;
4240
+ }
4241
+ });
4242
+ if (typeof (me.widgetElement.titleLineEnabled) != 'undefined') {
4243
+ let titleLineEnabled = me.widgetElement.titleLineEnabled();
4244
+ if (titleLineEnabled) {
4245
+ me.enableTitleLine = titleLineEnabled;
4246
+ me.enableTitleLineActual = titleLineEnabled;
4247
+ }
4084
4248
  }
4085
- }
4086
- me.editText = me.translateService.translate('Common.edit');
4087
- if (me.translateService.translate('Common.edit').length > 6) {
4088
- me.editText = (me.translateService.translate('Common.edit').substring(0, 6) + '...');
4089
- me.editToolTipValue = me.translateService.translate('Common.edit');
4090
- me.editToolTipWidth = "300px";
4091
- }
4092
- me.copyText = me.translateService.translate('Common.copy');
4093
- if (me.translateService.translate('Common.copy').length > 6) {
4094
- me.copyText = (me.translateService.translate('Common.copy').substring(0, 6) + '...');
4095
- me.copyToolTipValue = me.translateService.translate('Common.copy');
4096
- me.copyToolTipWidth = "300px";
4097
- }
4098
- me.moveText = me.translateService.translate('Common.move');
4099
- if (me.translateService.translate('Common.move').length > 6) {
4100
- me.moveText = (me.translateService.translate('Common.move').substring(0, 6) + '...');
4101
- me.moveToolTipValue = me.translateService.translate('Common.move');
4102
- me.moveToolTipWidth = "300px";
4103
- }
4104
- me.excelText = me.translateService.translate('Common.excel');
4105
- if (me.translateService.translate('Common.excel').length > 6) {
4106
- me.excelText = (me.translateService.translate('Common.excel').substring(0, 6) + '...');
4107
- me.excelToolTipValue = me.translateService.translate('Common.excel');
4108
- me.excelToolTipWidth = "300px";
4109
- }
4110
- me.deleteText = me.translateService.translate('Common.delete');
4111
- if (me.translateService.translate('Common.delete').length > 6) {
4112
- me.deleteText = (me.translateService.translate('Common.delete').substring(0, 6) + '...');
4113
- me.deleteToolTipValue = me.translateService.translate('Common.delete');
4114
- me.deleteToolTipWidth = "300px";
4115
- }
4116
- me.isWidgetLoaded = true;
4117
- widgetConfigFilter.appConfig = me.appConfig;
4118
- widgetConfigFilter.widgetInfo = widgetInfo;
4119
- widgetConfigFilter.configChanges = me.getConfigChanges(false);
4120
- widgetConfigFilter.widgetInfo.widgetName = widgetInfo.widgetName;
4121
- widgetConfigFilter.globalFilter = me.globalFilter;
4122
- me.widgetElement.loadContent(widgetConfigFilter);
4123
- await me.setLock(widgetConfigFilter.config);
4124
- await me.setDownloadIcon();
4125
- });
4126
- }.bind(this);
4127
- this.widgetElementHandler = handler;
4128
- document.body.addEventListener('widgetinitiated' + widgetInfo.widgetInstanceId, handler);
4129
- this.ctlWidget.nativeElement.appendChild(this.widgetElement);
4249
+ me.editText = me.translateService.translate('Common.edit');
4250
+ if (me.translateService.translate('Common.edit').length > 6) {
4251
+ me.editText = (me.translateService.translate('Common.edit').substring(0, 6) + '...');
4252
+ me.editToolTipValue = me.translateService.translate('Common.edit');
4253
+ me.editToolTipWidth = "300px";
4254
+ }
4255
+ me.copyText = me.translateService.translate('Common.copy');
4256
+ if (me.translateService.translate('Common.copy').length > 6) {
4257
+ me.copyText = (me.translateService.translate('Common.copy').substring(0, 6) + '...');
4258
+ me.copyToolTipValue = me.translateService.translate('Common.copy');
4259
+ me.copyToolTipWidth = "300px";
4260
+ }
4261
+ me.moveText = me.translateService.translate('Common.move');
4262
+ if (me.translateService.translate('Common.move').length > 6) {
4263
+ me.moveText = (me.translateService.translate('Common.move').substring(0, 6) + '...');
4264
+ me.moveToolTipValue = me.translateService.translate('Common.move');
4265
+ me.moveToolTipWidth = "300px";
4266
+ }
4267
+ me.excelText = me.translateService.translate('Common.excel');
4268
+ if (me.translateService.translate('Common.excel').length > 6) {
4269
+ me.excelText = (me.translateService.translate('Common.excel').substring(0, 6) + '...');
4270
+ me.excelToolTipValue = me.translateService.translate('Common.excel');
4271
+ me.excelToolTipWidth = "300px";
4272
+ }
4273
+ me.deleteText = me.translateService.translate('Common.delete');
4274
+ if (me.translateService.translate('Common.delete').length > 6) {
4275
+ me.deleteText = (me.translateService.translate('Common.delete').substring(0, 6) + '...');
4276
+ me.deleteToolTipValue = me.translateService.translate('Common.delete');
4277
+ me.deleteToolTipWidth = "300px";
4278
+ }
4279
+ me.isWidgetLoaded = true;
4280
+ widgetConfigFilter.appConfig = me.appConfig;
4281
+ widgetConfigFilter.widgetInfo = widgetInfo;
4282
+ widgetConfigFilter.configChanges = me.getConfigChanges(false);
4283
+ widgetConfigFilter.widgetInfo.widgetName = widgetInfo.widgetName;
4284
+ widgetConfigFilter.globalFilter = me.globalFilter;
4285
+ instance.loadContent(widgetConfigFilter);
4286
+ await me.setLock(widgetConfigFilter.config);
4287
+ await me.setDownloadIcon();
4288
+ });
4289
+ }.bind(this);
4290
+ this.widgetElementHandler = handler;
4291
+ document.body.addEventListener('widgetinitiated' + widgetInfo.widgetInstanceId, handler);
4292
+ });
4130
4293
  });
4131
- });
4294
+ }
4132
4295
  }
4133
4296
  /**To set Default State for the widget when it is not configured */
4134
4297
  setNotConfiguredState(widgetInfo, forceEnable = false) {
@@ -4184,7 +4347,8 @@ class RAWidgetContainer {
4184
4347
  globalFilter: this.globalFilter,
4185
4348
  appConfig: this.appConfig,
4186
4349
  widgetInfo: widgetInfo,
4187
- configChanges: this.getConfigChanges(configChanged)
4350
+ configChanges: this.getConfigChanges(configChanged),
4351
+ dashboardInfo: this.dashboardInfo
4188
4352
  };
4189
4353
  if (widgetContainerContext.isWidgetLoaded) {
4190
4354
  if (this.widgetElement && typeof (this.widgetElement.setConfigFilter) == 'function') {
@@ -4346,9 +4510,12 @@ class RAWidgetContainer {
4346
4510
  let html = '<div id="ra-db-widget-menu"' + 'style="' + style + '" class="download-content dropdown-content widget-config-item dropdown-click" style="z-index: 1002;">';
4347
4511
  let settings = '';
4348
4512
  if (this.isWidgetMgmnt) {
4349
- settings += this.getHtmlForButton('wcEditWidget', 'fal fa-edit', this.editText);
4350
- settings += this.getHtmlForButton('wcCopyWidget', 'fal fa-copy', this.copyText);
4351
- settings += this.getHtmlForButton('wcMoveWidget', 'fal fa-arrows-alt', this.moveText);
4513
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideEdit)
4514
+ settings += this.getHtmlForButton('wcEditWidget', 'fal fa-edit', this.editText);
4515
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideCopy)
4516
+ settings += this.getHtmlForButton('wcCopyWidget', 'fal fa-copy', this.copyText);
4517
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideMove)
4518
+ settings += this.getHtmlForButton('wcMoveWidget', 'fal fa-arrows-alt', this.moveText);
4352
4519
  }
4353
4520
  let customPageParams = false;
4354
4521
  if (this.data.widgetInfo && this.data.widgetInfo.widgetSettings) {
@@ -4357,14 +4524,14 @@ class RAWidgetContainer {
4357
4524
  customPageParams = true;
4358
4525
  }
4359
4526
  }
4360
- if ((this.detailPageUrl || customPageParams) && this.checkVisitLinkVisiblity()) {
4527
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideVisitPage && (this.detailPageUrl || customPageParams) && this.checkVisitLinkVisiblity()) {
4361
4528
  settings += '<a style="max-height: 30px;align-items: center;align-content: center; display: flex;" id="wcVisitWidget">';
4362
4529
  settings += '<i style="padding-left: 4px;font-size: 27px !important;" class="fal fa-angle-right"></i> ';
4363
4530
  settings += '<span style="padding-left: 11px;margin-top: 2px;" style="padding-left: 6px;">';
4364
4531
  settings += this.translateService.translate('Common.visitpage');
4365
4532
  settings += '</span></a>';
4366
4533
  }
4367
- if ((this.detailPageUrl && this.checkVisitLinkVisiblity()) || this.isWidgetMgmnt) {
4534
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideVisitPage && (this.detailPageUrl && this.checkVisitLinkVisiblity()) || this.isWidgetMgmnt) {
4368
4535
  html += '<div style="color: #9FA0A4;font-size: 12px;padding-top: 8px;padding-left: 12px;">';
4369
4536
  html += this.translateService.translate('Common.settings') + '</div>';
4370
4537
  html += settings;
@@ -4396,7 +4563,7 @@ class RAWidgetContainer {
4396
4563
  if (this.isDownloadIconVisible && this.isWidgetMgmnt && this.showExcell) {
4397
4564
  html += this.getHr();
4398
4565
  }
4399
- if (this.isWidgetMgmnt) {
4566
+ if (this.isWidgetMgmnt && !this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideDelete) {
4400
4567
  html += '<a id="wcWidgetDelete"><i class="fal fa-times" style="padding-left: 3px;color: red;"></i><span>';
4401
4568
  html += this.deleteText;
4402
4569
  html += '</span></a>';
@@ -4491,15 +4658,18 @@ class RAWidgetContainer {
4491
4658
  else
4492
4659
  return item;
4493
4660
  }
4494
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RAWidgetContainer, deps: [{ token: RaDashboardService }, { token: i2$1.NgxUiLoaderService }, { token: i3.RATranslateService }, { token: i0.NgZone }, { token: i4.NotifierService }, { token: i0.Renderer2 }, { token: i3.RAPermissionService }, { token: i3.DomService }], target: i0.ɵɵFactoryTarget.Component }); }
4495
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: RAWidgetContainer, selector: "ra-widget-container", inputs: { widgetInstanceId: ["widget-instance-id", "widgetInstanceId"], globalFilter: ["global-filter", "globalFilter"], data: "data", raDashboardEventBus: ["event-bus", "raDashboardEventBus"], appConfig: ["app-config", "appConfig"], width: ["widget-width", "width"], height: ["widget-height", "height"], gridCellHeight: ["grid-cell-height", "gridCellHeight"], setResized: ["dom-resized", "setResized"] }, outputs: { widgetDeleted: "widgetDeleted", updateAppliedFilters: "updateAppliedFilters" }, viewQueries: [{ propertyName: "ctlWidget", first: true, predicate: ["ctlWidget"], descendants: true }, { propertyName: "widgetDropdown", first: true, predicate: ["widgetDropdown"], descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "wcWrapper", first: true, predicate: ["wcWrapper"], descendants: true }, { propertyName: "banPopupDiv", first: true, predicate: ["banPopupDiv"], descendants: true }, { propertyName: "lockPopupDiv", first: true, predicate: ["lockPopupDiv"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #wcWrapper class=\"wc-wrapper\" (mouseenter)=\"mouseHover(true)\" (mouseleave)=\"mouseHover(false)\"\r\n [ngStyle]=\"{'margin-left': noPadding?'0px':'15px','margin-right': noPadding?'0px':'15px'}\">\r\n <div class=\"wcheader widget-move\" *ngIf=\"!hideTitle\"\r\n [ngClass]=\"{'underLine': enableTitleLine || isWidgetStateApplicable}\">\r\n <div class=\"col-md-12 wc-mover\" style=\"padding-left: 0px;height:inherit;padding-right: 0px;\">\r\n <div style=\"display:flex;margin-top:10px;\"\r\n [ngStyle]=\"{'margin-left': noPadding?'15px':'0px','margin-right': noPadding?'15px':'0px'}\">\r\n <div class=\"col-9 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div [hidden]=\"hideTitle\" style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\"\r\n (mouseover)=\"mouseOver($event)\" #searchInput>{{WidgetDisplayName}}</div>\r\n </ra-tooltip>\r\n </div>\r\n <div class=\"col-3\" style=\"cursor:default;padding-right: 0px;\"> \r\n <div class=\"float-right\" style=\"display: flex;\">\r\n <div #banPopupDiv (mouseover)=\"openPopup(inapplicableIconTitle,inapplicableFilters,inapplicableIconFooter,'innaplicable')\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!inapplicableFilters || inapplicableFilters.length == 0 || !globalFilter || globalFilter == '{}'\">\r\n <i class=\"fal fa-ban lock\"></i> \r\n </div>\r\n <div #lockPopupDiv (mouseover)=\"openPopup(lockIconTitle,lockDetails,lockIconFooter,'lock',lockTemplateInfo)\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!lockDetails && !lockTemplateInfo\">\r\n <i class=\"fal fa-lock lock\"></i> \r\n </div>\r\n <div class=\"widget-menu\" style=\"width:10px;\"\r\n [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" #widgetDropdown class=\"fal fa-ellipsis-v widget-menu-ellipse\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"wcheader widget-move\"\r\n style=\"height: 45px;width: 95%;cursor: move;z-index: 99;opacity: 0;\">\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"widget-menu widget-menu-title-hidden\" [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" class=\"fal fa-ellipsis-v\" style=\"text-align: center;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\" [ngStyle]=\"{'bottom': noPadding?'0px':'10px','top':hideTitle?'10px':'46px'}\">\r\n <div [hidden]=\"isWidgetStateApplicable\" class=\"m-fadeOut widget-overlay\" [ngClass]=\"{'m-fadeIn': showPanel}\">\r\n <div class=\"lds-roller\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n <div class=\"wc\" [hidden]=\"isWidgetStateApplicable\">\r\n <div #ctlWidget></div>\r\n </div>\r\n <div *ngIf=\"isWidgetStateApplicable\" class=\"defaultConfig\">\r\n <ra-widget-state style=\"width: 100%;height: 100%;\" [isWidgetStateApplicable]=\"isWidgetStateApplicable\"\r\n [isGlobalFilterApplied]=\"isGlobalFilterApplied\" [widgetEmptyState]=\"widgetEmptyState\"\r\n (editWidgetClicked)=editWidget() [widthCol]=\"width\" [heightCol]=\"height\">\r\n </ra-widget-state>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.TooltipControl, selector: "ra-tooltip", inputs: ["data", "url", "value", "key", "dataField", "position", "width", "count", "moreItemText", "reset", "disable-tooltip", "set-top-padding"], outputs: ["dataLoaded"] }, { kind: "component", type: i6.WidgetStateControl, selector: "ra-widget-state", inputs: ["isWidgetStateApplicable", "isGlobalFilterApplied", "widgetEmptyState", "widgetEmptyDataText", "widthCol", "heightCol"], outputs: ["editWidgetClicked"] }] }); }
4661
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RAWidgetContainer, deps: [{ token: RaDashboardService }, { token: i2$1.NgxUiLoaderService }, { token: i3.RATranslateService }, { token: i0.NgZone }, { token: i4.NotifierService }, { token: i0.Renderer2 }, { token: i3.RAPermissionService }, { token: i3.DomService }], target: i0.ɵɵFactoryTarget.Component }); }
4662
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: RAWidgetContainer, selector: "ra-widget-container", inputs: { widgetInstanceId: ["widget-instance-id", "widgetInstanceId"], globalFilter: ["global-filter", "globalFilter"], dashboardInfo: ["dashboard-info", "dashboardInfo"], data: "data", raDashboardEventBus: ["event-bus", "raDashboardEventBus"], appConfig: ["app-config", "appConfig"], width: ["widget-width", "width"], height: ["widget-height", "height"], gridCellHeight: ["grid-cell-height", "gridCellHeight"], bulkActionData: ["bulk-action-data", "bulkActionData"], canLoadData: "canLoadData", setResized: ["dom-resized", "setResized"] }, outputs: { widgetDeleted: "widgetDeleted", updateAppliedFilters: "updateAppliedFilters", dataLoaded: "dataLoaded", widgetLoaded: "widgetLoaded" }, viewQueries: [{ propertyName: "ctlWidget", first: true, predicate: ["ctlWidget"], descendants: true }, { propertyName: "ctlWidgetModule", first: true, predicate: ["ctlWidgetModule"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "widgetDropdown", first: true, predicate: ["widgetDropdown"], descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "wcWrapper", first: true, predicate: ["wcWrapper"], descendants: true }, { propertyName: "banPopupDiv", first: true, predicate: ["banPopupDiv"], descendants: true }, { propertyName: "lockPopupDiv", first: true, predicate: ["lockPopupDiv"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #wcWrapper class=\"wc-wrapper\" (mouseenter)=\"mouseHover(true)\" (mouseleave)=\"mouseHover(false)\"\r\n [ngStyle]=\"{'margin-left': noPadding?'0px':'15px','margin-right': noPadding?'0px':'15px'}\">\r\n <div class=\"wcheader widget-move\" *ngIf=\"!hideTitle\"\r\n [ngClass]=\"{'underLine': enableTitleLine || isWidgetStateApplicable}\">\r\n <div class=\"col-md-12 wc-mover\" style=\"padding-left: 0px;height:inherit;padding-right: 0px;\">\r\n <div style=\"display:flex;margin-top:10px;\"\r\n [ngStyle]=\"{'margin-left': noPadding?'15px':'0px','margin-right': noPadding?'15px':'0px'}\">\r\n <div class=\"col-9 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div [hidden]=\"hideTitle\" style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\"\r\n (mouseover)=\"mouseOver($event)\" #searchInput>{{WidgetDisplayName}}</div>\r\n </ra-tooltip>\r\n </div>\r\n <div class=\"col-3\" style=\"cursor:default;padding-right: 0px;\"> \r\n <div class=\"float-right\" style=\"display: flex;\">\r\n <div #banPopupDiv (mouseover)=\"openPopup(inapplicableIconTitle,inapplicableFilters,inapplicableIconFooter,'innaplicable')\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!inapplicableFilters || inapplicableFilters.length == 0 || !globalFilter || globalFilter == '{}'\">\r\n <i class=\"fal fa-ban lock\"></i> \r\n </div>\r\n <div #lockPopupDiv (mouseover)=\"openPopup(lockIconTitle,lockDetails,lockIconFooter,'lock',lockTemplateInfo)\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!lockDetails && !lockTemplateInfo\">\r\n <i class=\"fal fa-lock lock\"></i> \r\n </div>\r\n <div class=\"widget-menu\" style=\"width:10px;\"\r\n [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" #widgetDropdown class=\"fal fa-ellipsis-v widget-menu-ellipse\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"wcheader widget-move\"\r\n style=\"height: 45px;width: 95%;cursor: move;z-index: 99;opacity: 0;\">\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"widget-menu widget-menu-title-hidden\" [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" class=\"fal fa-ellipsis-v\" style=\"text-align: center;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\" [ngStyle]=\"{'bottom': noPadding?'0px':'10px','top':hideTitle?'10px':'46px'}\">\r\n <div [hidden]=\"isWidgetStateApplicable\" class=\"m-fadeOut widget-overlay\" [ngClass]=\"{'m-fadeIn': showPanel}\">\r\n <div class=\"lds-roller\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n <div class=\"wc\" [hidden]=\"isWidgetStateApplicable\">\r\n <div [hidden]=\"!isCustomElement\" #ctlWidget></div>\r\n <div [hidden]=\"isCustomElement\">\r\n <ng-container #ctlWidgetModule></ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isWidgetStateApplicable\" class=\"defaultConfig\">\r\n <ra-widget-state style=\"width: 100%;height: 100%;\" [isWidgetStateApplicable]=\"isWidgetStateApplicable\"\r\n [isGlobalFilterApplied]=\"isGlobalFilterApplied\" [widgetEmptyState]=\"widgetEmptyState\"\r\n (editWidgetClicked)=editWidget() [widthCol]=\"width\" [heightCol]=\"height\">\r\n </ra-widget-state>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.TooltipControl, selector: "ra-tooltip", inputs: ["data", "url", "value", "key", "dataField", "position", "width", "count", "moreItemText", "reset", "disable-tooltip", "set-top-padding"], outputs: ["dataLoaded"] }, { kind: "component", type: i6.WidgetStateControl, selector: "ra-widget-state", inputs: ["isWidgetStateApplicable", "isGlobalFilterApplied", "widgetEmptyState", "widgetEmptyDataText", "widthCol", "heightCol"], outputs: ["editWidgetClicked"] }] }); }
4496
4663
  }
4497
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RAWidgetContainer, decorators: [{
4664
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RAWidgetContainer, decorators: [{
4498
4665
  type: Component,
4499
- args: [{ selector: 'ra-widget-container', template: "<div #wcWrapper class=\"wc-wrapper\" (mouseenter)=\"mouseHover(true)\" (mouseleave)=\"mouseHover(false)\"\r\n [ngStyle]=\"{'margin-left': noPadding?'0px':'15px','margin-right': noPadding?'0px':'15px'}\">\r\n <div class=\"wcheader widget-move\" *ngIf=\"!hideTitle\"\r\n [ngClass]=\"{'underLine': enableTitleLine || isWidgetStateApplicable}\">\r\n <div class=\"col-md-12 wc-mover\" style=\"padding-left: 0px;height:inherit;padding-right: 0px;\">\r\n <div style=\"display:flex;margin-top:10px;\"\r\n [ngStyle]=\"{'margin-left': noPadding?'15px':'0px','margin-right': noPadding?'15px':'0px'}\">\r\n <div class=\"col-9 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div [hidden]=\"hideTitle\" style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\"\r\n (mouseover)=\"mouseOver($event)\" #searchInput>{{WidgetDisplayName}}</div>\r\n </ra-tooltip>\r\n </div>\r\n <div class=\"col-3\" style=\"cursor:default;padding-right: 0px;\"> \r\n <div class=\"float-right\" style=\"display: flex;\">\r\n <div #banPopupDiv (mouseover)=\"openPopup(inapplicableIconTitle,inapplicableFilters,inapplicableIconFooter,'innaplicable')\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!inapplicableFilters || inapplicableFilters.length == 0 || !globalFilter || globalFilter == '{}'\">\r\n <i class=\"fal fa-ban lock\"></i> \r\n </div>\r\n <div #lockPopupDiv (mouseover)=\"openPopup(lockIconTitle,lockDetails,lockIconFooter,'lock',lockTemplateInfo)\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!lockDetails && !lockTemplateInfo\">\r\n <i class=\"fal fa-lock lock\"></i> \r\n </div>\r\n <div class=\"widget-menu\" style=\"width:10px;\"\r\n [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" #widgetDropdown class=\"fal fa-ellipsis-v widget-menu-ellipse\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"wcheader widget-move\"\r\n style=\"height: 45px;width: 95%;cursor: move;z-index: 99;opacity: 0;\">\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"widget-menu widget-menu-title-hidden\" [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" class=\"fal fa-ellipsis-v\" style=\"text-align: center;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\" [ngStyle]=\"{'bottom': noPadding?'0px':'10px','top':hideTitle?'10px':'46px'}\">\r\n <div [hidden]=\"isWidgetStateApplicable\" class=\"m-fadeOut widget-overlay\" [ngClass]=\"{'m-fadeIn': showPanel}\">\r\n <div class=\"lds-roller\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n <div class=\"wc\" [hidden]=\"isWidgetStateApplicable\">\r\n <div #ctlWidget></div>\r\n </div>\r\n <div *ngIf=\"isWidgetStateApplicable\" class=\"defaultConfig\">\r\n <ra-widget-state style=\"width: 100%;height: 100%;\" [isWidgetStateApplicable]=\"isWidgetStateApplicable\"\r\n [isGlobalFilterApplied]=\"isGlobalFilterApplied\" [widgetEmptyState]=\"widgetEmptyState\"\r\n (editWidgetClicked)=editWidget() [widthCol]=\"width\" [heightCol]=\"height\">\r\n </ra-widget-state>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n</div>" }]
4666
+ args: [{ selector: 'ra-widget-container', template: "<div #wcWrapper class=\"wc-wrapper\" (mouseenter)=\"mouseHover(true)\" (mouseleave)=\"mouseHover(false)\"\r\n [ngStyle]=\"{'margin-left': noPadding?'0px':'15px','margin-right': noPadding?'0px':'15px'}\">\r\n <div class=\"wcheader widget-move\" *ngIf=\"!hideTitle\"\r\n [ngClass]=\"{'underLine': enableTitleLine || isWidgetStateApplicable}\">\r\n <div class=\"col-md-12 wc-mover\" style=\"padding-left: 0px;height:inherit;padding-right: 0px;\">\r\n <div style=\"display:flex;margin-top:10px;\"\r\n [ngStyle]=\"{'margin-left': noPadding?'15px':'0px','margin-right': noPadding?'15px':'0px'}\">\r\n <div class=\"col-9 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div [hidden]=\"hideTitle\" style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\"\r\n (mouseover)=\"mouseOver($event)\" #searchInput>{{WidgetDisplayName}}</div>\r\n </ra-tooltip>\r\n </div>\r\n <div class=\"col-3\" style=\"cursor:default;padding-right: 0px;\"> \r\n <div class=\"float-right\" style=\"display: flex;\">\r\n <div #banPopupDiv (mouseover)=\"openPopup(inapplicableIconTitle,inapplicableFilters,inapplicableIconFooter,'innaplicable')\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!inapplicableFilters || inapplicableFilters.length == 0 || !globalFilter || globalFilter == '{}'\">\r\n <i class=\"fal fa-ban lock\"></i> \r\n </div>\r\n <div #lockPopupDiv (mouseover)=\"openPopup(lockIconTitle,lockDetails,lockIconFooter,'lock',lockTemplateInfo)\" (mouseout)=\"closePopup()\" class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!lockDetails && !lockTemplateInfo\">\r\n <i class=\"fal fa-lock lock\"></i> \r\n </div>\r\n <div class=\"widget-menu\" style=\"width:10px;\"\r\n [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" #widgetDropdown class=\"fal fa-ellipsis-v widget-menu-ellipse\"></i>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"wcheader widget-move\"\r\n style=\"height: 45px;width: 95%;cursor: move;z-index: 99;opacity: 0;\">\r\n </div>\r\n <div *ngIf=\"hideTitle\" class=\"widget-menu widget-menu-title-hidden\" [ngClass]=\"{'widget-menu-show': isMouseHover && showSettingsLink}\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown($event)\" class=\"fal fa-ellipsis-v\" style=\"text-align: center;\"></i>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\" [ngStyle]=\"{'bottom': noPadding?'0px':'10px','top':hideTitle?'10px':'46px'}\">\r\n <div [hidden]=\"isWidgetStateApplicable\" class=\"m-fadeOut widget-overlay\" [ngClass]=\"{'m-fadeIn': showPanel}\">\r\n <div class=\"lds-roller\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n <div class=\"wc\" [hidden]=\"isWidgetStateApplicable\">\r\n <div [hidden]=\"!isCustomElement\" #ctlWidget></div>\r\n <div [hidden]=\"isCustomElement\">\r\n <ng-container #ctlWidgetModule></ng-container>\r\n </div>\r\n </div>\r\n <div *ngIf=\"isWidgetStateApplicable\" class=\"defaultConfig\">\r\n <ra-widget-state style=\"width: 100%;height: 100%;\" [isWidgetStateApplicable]=\"isWidgetStateApplicable\"\r\n [isGlobalFilterApplied]=\"isGlobalFilterApplied\" [widgetEmptyState]=\"widgetEmptyState\"\r\n (editWidgetClicked)=editWidget() [widthCol]=\"width\" [heightCol]=\"height\">\r\n </ra-widget-state>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n</div>" }]
4500
4667
  }], ctorParameters: () => [{ type: RaDashboardService }, { type: i2$1.NgxUiLoaderService }, { type: i3.RATranslateService }, { type: i0.NgZone }, { type: i4.NotifierService }, { type: i0.Renderer2 }, { type: i3.RAPermissionService }, { type: i3.DomService }], propDecorators: { ctlWidget: [{
4501
4668
  type: ViewChild,
4502
4669
  args: ['ctlWidget', { static: false }]
4670
+ }], ctlWidgetModule: [{
4671
+ type: ViewChild,
4672
+ args: ['ctlWidgetModule', { read: ViewContainerRef, static: true }]
4503
4673
  }], widgetDropdown: [{
4504
4674
  type: ViewChild,
4505
4675
  args: ['widgetDropdown', { static: false }]
@@ -4521,6 +4691,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
4521
4691
  }], globalFilter: [{
4522
4692
  type: Input,
4523
4693
  args: ['global-filter']
4694
+ }], dashboardInfo: [{
4695
+ type: Input,
4696
+ args: ['dashboard-info']
4524
4697
  }], data: [{
4525
4698
  type: Input,
4526
4699
  args: ['data']
@@ -4539,10 +4712,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
4539
4712
  }], gridCellHeight: [{
4540
4713
  type: Input,
4541
4714
  args: ['grid-cell-height']
4715
+ }], bulkActionData: [{
4716
+ type: Input,
4717
+ args: ['bulk-action-data']
4718
+ }], canLoadData: [{
4719
+ type: Input
4542
4720
  }], widgetDeleted: [{
4543
4721
  type: Output
4544
4722
  }], updateAppliedFilters: [{
4545
4723
  type: Output
4724
+ }], dataLoaded: [{
4725
+ type: Output
4726
+ }], widgetLoaded: [{
4727
+ type: Output
4546
4728
  }], setResized: [{
4547
4729
  type: Input,
4548
4730
  args: ['dom-resized']
@@ -4566,13 +4748,20 @@ class RADashboardArea {
4566
4748
  this.domResized = false;
4567
4749
  this.showEmptyDashboard = false;
4568
4750
  this.isWidgetMgmnt = false;
4751
+ this.initialWidgetCount = 10;
4752
+ this.currentLoadedIndex = 0;
4753
+ this.loading = false;
4569
4754
  this.widgetHeight = 2;
4570
4755
  this.widgetWidth = 4;
4571
4756
  this.hideDashboardBanner = new EventEmitter();
4572
4757
  }
4573
4758
  ngOnInit() {
4759
+ window.addEventListener('scroll', () => {
4760
+ this.loadNext();
4761
+ });
4574
4762
  this.isWidgetMgmnt = this.permissionService.hasPermission('ra.widgetmanagement');
4575
4763
  this.initiateGridsterConfig();
4764
+ this.setEmptyDashboardConfig();
4576
4765
  this.lastViewType = this.responsiveService.IsDesktopView ? 'desktop' : 'mobile';
4577
4766
  this.responsiveService.resized.subscribe((isDesktop) => {
4578
4767
  if (this.lastViewType != (isDesktop ? 'desktop' : 'mobile') || !isDesktop) {
@@ -4601,6 +4790,11 @@ class RADashboardArea {
4601
4790
  }, 100);
4602
4791
  }
4603
4792
  });
4793
+ setTimeout(() => {
4794
+ this.bulkActionClick = this.raDashboardEventBus.subscribe(RAEvent.BulkActionClick).subscribe((data) => {
4795
+ this.bulkActionData = JSON.parse(JSON.stringify(data)); // To create a new reference;
4796
+ });
4797
+ });
4604
4798
  }
4605
4799
  ngOnChanges(changes) {
4606
4800
  this.isWidgetMgmnt = this.permissionService.hasPermission('ra.widgetmanagement');
@@ -4608,27 +4802,43 @@ class RADashboardArea {
4608
4802
  this.isWidgetLoaded = true;
4609
4803
  this.loadWidgets(this.userDashboardId, this.areaKey);
4610
4804
  }
4805
+ this.initiateGridsterConfig();
4611
4806
  if (changes['raDashboardEventBus'] && changes['raDashboardEventBus'].currentValue != changes['raDashboardEventBus'].previousValue) {
4612
4807
  this.inititateEventBusSubscritions();
4613
4808
  }
4614
4809
  }
4810
+ setEmptyDashboardConfig() {
4811
+ if (this.dashboardInfo && this.dashboardInfo.templateConfig.emptyDashboardHeader) {
4812
+ this.emptyDashboardTitle = this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.titleKey);
4813
+ this.emptyDashboardMsg1 = this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.descriptionKey1);
4814
+ this.emptyDashboardMsg2 = (this.dashboardInfo.templateConfig.emptyDashboardHeader.descriptionKey2) ? this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.descriptionKey2) : '';
4815
+ this.emptyDashboardButtonText = this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonTextKey);
4816
+ this.emptyDashboardButtonIcon = this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonIcon ? this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonIcon : '';
4817
+ this.emptyDashboardButtonAction = this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonAction ? this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonAction : '';
4818
+ }
4819
+ }
4615
4820
  /**To set GridsterConfig */
4616
4821
  initiateGridsterConfig() {
4617
- /**To override default configuration values to the gridster control */
4618
- this.options = this.responsiveService.getGridsterConfig(this.isWidgetMgmnt);
4619
- this.options.initCallback = (gridster) => {
4620
- if (this.options.api) {
4621
- this.gridcellHeight = this.options.api.getCurrentRowHeight();
4622
- }
4623
- };
4624
- this.options.itemChangeCallback = (item) => {
4625
- if (this.responsiveService.IsDesktopView) {
4626
- if (item.widgetInfo && item.widgetInfo.widgetInstanceId) {
4627
- this.updateWidgetPosition(item.widgetInfo.widgetInstanceId);
4822
+ if (this.dashboardInfo) {
4823
+ /**To override default configuration values to the gridster control */
4824
+ this.options = this.responsiveService.getGridsterConfig(this.isWidgetMgmnt, this.dashboardInfo.templateConfig.widget.canResize, this.dashboardInfo.templateConfig.widget.canMove);
4825
+ this.options.initCallback = (gridster) => {
4826
+ if (this.options.api) {
4827
+ this.gridcellHeight = this.options.api.getCurrentRowHeight();
4628
4828
  }
4629
- }
4630
- this.setAreaHeight();
4631
- };
4829
+ };
4830
+ this.options.itemChangeCallback = (item) => {
4831
+ if (this.responsiveService.IsDesktopView) {
4832
+ if (item.widgetInfo && item.widgetInfo.widgetInstanceId) {
4833
+ this.updateWidgetPosition(item.widgetInfo.widgetInstanceId);
4834
+ }
4835
+ }
4836
+ this.setAreaHeight();
4837
+ };
4838
+ }
4839
+ }
4840
+ widgetLoaded(widget) {
4841
+ widget.canLoadData = true;
4632
4842
  }
4633
4843
  /** To initiate eventbus subsctiptions */
4634
4844
  inititateEventBusSubscritions() {
@@ -4647,6 +4857,11 @@ class RADashboardArea {
4647
4857
  this.addWidget(e);
4648
4858
  });
4649
4859
  });
4860
+ this.curatedFilterChange = this.raDashboardEventBus.subscribe(RAEvent.CuratedFilterChange).subscribe((e) => {
4861
+ this.ngZone.run(() => {
4862
+ this.loadWidgets(this.userDashboardId, this.areaKey);
4863
+ });
4864
+ });
4650
4865
  this.rearrangeWidgetClick = this.raDashboardEventBus.subscribe(RAEvent.RearrangeClicked).subscribe((e) => {
4651
4866
  this.ngZone.run(() => {
4652
4867
  this.rearrangeWidgets();
@@ -4695,6 +4910,10 @@ class RADashboardArea {
4695
4910
  this.widgetLibraryDoneClick.unsubscribe();
4696
4911
  if (this.rearrangeWidgetClick)
4697
4912
  this.rearrangeWidgetClick.unsubscribe();
4913
+ if (this.curatedFilterChange)
4914
+ this.curatedFilterChange.unsubscribe();
4915
+ if (this.bulkActionClick)
4916
+ this.bulkActionClick.unsubscribe();
4698
4917
  }
4699
4918
  /**To update position/dimention of all widgets in the area */
4700
4919
  updateWidgets() {
@@ -4730,6 +4949,13 @@ class RADashboardArea {
4730
4949
  }
4731
4950
  /** To retrieve widgets based on userDashboardid and area name */
4732
4951
  loadWidgets(userDashboarId, areaKey) {
4952
+ if (this.templateConfig && this.templateConfig.initialWidgetCount)
4953
+ this.initialWidgetCount = this.templateConfig.initialWidgetCount;
4954
+ window.scrollTo(0, 0);
4955
+ if (location.href.indexOf('/kiosk/') > -1)
4956
+ this.initialWidgetCount = 1000;
4957
+ this.currentLoadedIndex = 0;
4958
+ this.loading = false;
4733
4959
  let widgetInfo = {
4734
4960
  dashboardId: userDashboarId.toString(),
4735
4961
  dashboardAreaKey: areaKey
@@ -4749,8 +4975,7 @@ class RADashboardArea {
4749
4975
  this.checkPAMWidgets();
4750
4976
  if (widgets && widgets.length > 0) {
4751
4977
  this.dashboardService.clientId = widgets[0].clientId;
4752
- this.widgetList = this.mapObjectListToGridsterItemList(widgets);
4753
- this.setAreaHeight();
4978
+ this.loadWidgetsDelta();
4754
4979
  this.raDashboardEventBus.publish(RAEvent.HideDashboardBanner, false);
4755
4980
  }
4756
4981
  else {
@@ -4759,6 +4984,43 @@ class RADashboardArea {
4759
4984
  }
4760
4985
  });
4761
4986
  }
4987
+ loadWidgetsDelta() {
4988
+ if (!this.loading) {
4989
+ this.loading = true;
4990
+ let widgets = this.mapObjectListToGridsterItemList(this.userWidgets.slice(this.currentLoadedIndex, (this.currentLoadedIndex + this.initialWidgetCount)));
4991
+ this.currentLoadedIndex += this.initialWidgetCount;
4992
+ this.widgetList.push(...widgets);
4993
+ this.setAreaHeight();
4994
+ setTimeout(() => {
4995
+ this.loading = false;
4996
+ });
4997
+ }
4998
+ }
4999
+ dataLoaded(widgetElement) {
5000
+ this.loadNext();
5001
+ }
5002
+ loadNext() {
5003
+ if (this.divBottom) {
5004
+ if (this.elementInViewport(this.divBottom.nativeElement)) {
5005
+ this.loadWidgetsDelta();
5006
+ }
5007
+ }
5008
+ }
5009
+ elementInViewport(el) {
5010
+ var top = el.offsetTop;
5011
+ var left = el.offsetLeft;
5012
+ var width = el.offsetWidth;
5013
+ var height = el.offsetHeight;
5014
+ while (el.offsetParent) {
5015
+ el = el.offsetParent;
5016
+ top += el.offsetTop;
5017
+ left += el.offsetLeft;
5018
+ }
5019
+ return (top >= window.scrollY &&
5020
+ left >= window.scrollX &&
5021
+ (top + height) <= (window.scrollY + window.innerHeight) &&
5022
+ (left + width) <= (window.scrollX + window.innerWidth));
5023
+ }
4762
5024
  /** To set Area(Gridster) height dynamically as widgets are added/removed */
4763
5025
  setAreaHeight() {
4764
5026
  setTimeout(() => {
@@ -4800,22 +5062,22 @@ class RADashboardArea {
4800
5062
  }
4801
5063
  /** To remove a widget instance from dashboard and to save info in database */
4802
5064
  deleteWidget(widgetInstanceId, isalertDisabled = false) {
5065
+ let widget = this.userWidgets.filter((item) => {
5066
+ return item.widgetInstanceId === widgetInstanceId;
5067
+ });
5068
+ if (widget.length > 0) {
5069
+ this.userWidgets.splice(this.userWidgets.indexOf(widget[0]), 1);
5070
+ }
5071
+ if (this.PAMWidgets.length > 0) {
5072
+ var indx = this.PAMWidgets.indexOf(widgetInstanceId);
5073
+ if (indx > -1)
5074
+ this.PAMWidgets.splice(indx, 1);
5075
+ this.checkPAMWidgets();
5076
+ }
4803
5077
  let gridsterItem = this.widgetList.filter((item) => {
4804
5078
  return item.widgetInfo.widgetInstanceId === widgetInstanceId;
4805
5079
  });
4806
5080
  if (gridsterItem.length > 0) {
4807
- let widget = this.userWidgets.filter((item) => {
4808
- return item.widgetInstanceId === widgetInstanceId;
4809
- });
4810
- if (widget.length > 0) {
4811
- this.userWidgets.splice(this.userWidgets.indexOf(widget[0]), 1);
4812
- }
4813
- if (this.PAMWidgets.length > 0) {
4814
- var indx = this.PAMWidgets.indexOf(widgetInstanceId);
4815
- if (indx > -1)
4816
- this.PAMWidgets.splice(indx, 1);
4817
- this.checkPAMWidgets();
4818
- }
4819
5081
  this.widgetList.splice(this.widgetList.indexOf(gridsterItem[0]), 1);
4820
5082
  this.setAreaHeight();
4821
5083
  if (!isalertDisabled) {
@@ -4829,11 +5091,15 @@ class RADashboardArea {
4829
5091
  }
4830
5092
  /**To rearrange widgets position in the dashboard, compactLeft&Up,compactLeft,compactUp,etc*/
4831
5093
  rearrangeWidgets() {
5094
+ this.currentLoadedIndex = 0;
5095
+ this.loading = false;
4832
5096
  for (let i = 0; i < this.userWidgets.length; i++) {
4833
5097
  this.userWidgets[i].position_x = 0;
4834
5098
  this.userWidgets[i].position_y = 0;
4835
5099
  }
4836
- this.widgetList = this.mapObjectListToGridsterItemList(this.userWidgets);
5100
+ this.widgetList = [];
5101
+ this.loadWidgetsDelta();
5102
+ this.raDashboardEventBus.publish(RAEvent.HideDashboardBanner, false);
4837
5103
  if (this.widgetList.length > 0)
4838
5104
  this.updateWidgetPosition(this.widgetList[0].widgetInfo.widgetInstanceId);
4839
5105
  setTimeout(() => {
@@ -4865,29 +5131,32 @@ class RADashboardArea {
4865
5131
  this.ngxService.start();
4866
5132
  this.dashboardService.addWidget(data, this.appConfig).subscribe(widget => {
4867
5133
  this.userWidgets.push(widget);
4868
- let gridsterItem = this.responsiveService.getGridsterItem(widget);
4869
- this.widgetList.push(gridsterItem);
4870
- this.setAreaHeight();
4871
- if (this.options.api) {
4872
- let curRowHeight = Number(this.options.api.getCurrentRowHeight());
4873
- if (curRowHeight > 0) {
4874
- widget.rowHeight = curRowHeight;
4875
- this.gridcellHeight = curRowHeight;
5134
+ if (this.currentLoadedIndex >= (this.userWidgets.length - 1)) {
5135
+ this.currentLoadedIndex++;
5136
+ let gridsterItem = this.responsiveService.getGridsterItem(widget);
5137
+ this.widgetList.push(gridsterItem);
5138
+ this.setAreaHeight();
5139
+ if (this.options.api) {
5140
+ let curRowHeight = Number(this.options.api.getCurrentRowHeight());
5141
+ if (curRowHeight > 0) {
5142
+ widget.rowHeight = curRowHeight;
5143
+ this.gridcellHeight = curRowHeight;
5144
+ }
4876
5145
  }
4877
- }
4878
- var widgetInstanceId = 0;
4879
- if (widget && widget.widgetInstanceId) {
4880
- widgetInstanceId = widget.widgetInstanceId;
4881
- /**To save added widget position in db */
4882
- if (this.responsiveService.IsDesktopView) {
4883
- setTimeout(() => {
4884
- this.updateWidgetPosition(widgetInstanceId);
4885
- });
5146
+ var widgetInstanceId = 0;
5147
+ if (widget && widget.widgetInstanceId) {
5148
+ widgetInstanceId = widget.widgetInstanceId;
5149
+ /**To save added widget position in db */
5150
+ if (this.responsiveService.IsDesktopView) {
5151
+ setTimeout(() => {
5152
+ this.updateWidgetPosition(widgetInstanceId);
5153
+ });
5154
+ }
5155
+ }
5156
+ if (widget.settings && widget.settings.isPAMWidget) {
5157
+ this.PAMWidgets.push(widget.widgetInstanceId);
5158
+ this.checkPAMWidgets();
4886
5159
  }
4887
- }
4888
- if (widget.settings && widget.settings.isPAMWidget) {
4889
- this.PAMWidgets.push(widget.widgetInstanceId);
4890
- this.checkPAMWidgets();
4891
5160
  }
4892
5161
  this.raDashboardEventBus.publish(RAEvent.WidgetAdded, widget);
4893
5162
  });
@@ -4917,12 +5186,15 @@ class RADashboardArea {
4917
5186
  });
4918
5187
  }
4919
5188
  this.userWidgets.push(data);
4920
- let gridsterItem = this.responsiveService.getGridsterItem(data);
4921
- this.widgetList.push(gridsterItem);
4922
- this.setAreaHeight();
4923
- if (data.settings && data.settings.isPAMWidget) {
4924
- this.PAMWidgets.push(data.widgetInstanceId);
4925
- this.checkPAMWidgets();
5189
+ if (this.currentLoadedIndex >= (this.userWidgets.length - 1)) {
5190
+ this.currentLoadedIndex++;
5191
+ let gridsterItem = this.responsiveService.getGridsterItem(data);
5192
+ this.widgetList.push(gridsterItem);
5193
+ this.setAreaHeight();
5194
+ if (data.settings && data.settings.isPAMWidget) {
5195
+ this.PAMWidgets.push(data.widgetInstanceId);
5196
+ this.checkPAMWidgets();
5197
+ }
4926
5198
  }
4927
5199
  }
4928
5200
  mapObjectListToGridsterItemList(widgetList) {
@@ -4949,8 +5221,11 @@ class RADashboardArea {
4949
5221
  });
4950
5222
  return widgetListArray;
4951
5223
  }
4952
- addNewWidget() {
4953
- this.raDashboardEventBus.publish(RAEvent.AddNewWidgetToDashboard, null);
5224
+ buttonClick() {
5225
+ if (this.emptyDashboardButtonAction == "widgets")
5226
+ this.raDashboardEventBus.publish(RAEvent.AddNewWidgetToDashboard, null);
5227
+ else if (this.emptyDashboardButtonAction == "filter")
5228
+ this.raDashboardEventBus.publish(RAEvent.GlobalFilterClick, null);
4954
5229
  }
4955
5230
  updateAppliedFilters(data) {
4956
5231
  this.raDashboardEventBus.publish(RAEvent.UpdateAppledFiterForInapplicableFilter, data);
@@ -4963,12 +5238,12 @@ class RADashboardArea {
4963
5238
  this.raDashboardEventBus.publish(RAEvent.ShowInapplicableFilterMessage, false);
4964
5239
  }
4965
5240
  }
4966
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardArea, deps: [{ token: RaDashboardService }, { token: i0.NgZone }, { token: i2$1.NgxUiLoaderService }, { token: i3.RATranslateService }, { token: i4.NotifierService }, { token: RADashboardResponsiveService }, { token: i3.RAPermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
4967
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: RADashboardArea, selector: "ra-dashboard-area", inputs: { userDashboardId: ["user-dashboard-id", "userDashboardId"], areaKey: ["area-key", "areaKey"], globalFilter: ["global-filter", "globalFilter"], raDashboardEventBus: ["event-bus", "raDashboardEventBus"], widgetHeight: ["widget-height", "widgetHeight"], widgetWidth: ["widget-width", "widgetWidth"], appConfig: ["app-config", "appConfig"] }, outputs: { hideDashboardBanner: "hideDashboardBanner" }, viewQueries: [{ propertyName: "gridWrapper", first: true, predicate: ["gridWrapper"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #gridWrapper class=\"wrap gridster gridster-mobile\" [ngStyle]=\"{'height': userWidgets.length > 0 ? (gridheight + 'px') : 'unset'}\">\r\n <!-- <div #gridWrapper class=\"wrap gridster\"> -->\r\n <gridster [options]=\"options\" style=\"height:100%;\" *ngIf=\"userWidgets.length > 0\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetList\">\r\n <ra-widget-container [app-config]=\"appConfig\" [event-bus]=\"raDashboardEventBus\"\r\n (widgetDeleted)=\"deleteWidget($event)\" [data]=\"item\" [global-filter]=\"globalFilter\"\r\n [grid-cell-height]=\"gridcellHeight\" *ngIf=\"gridcellHeight && gridcellHeight > 0\" [widget-width]=\"item.cols\"\r\n [widget-height]=\"item.rows\" [widget-instance-id]=\"item.widgetInstanceId\" [dom-resized]=\"domResized\"\r\n (updateAppliedFilters)=\"updateAppliedFilters($event)\">\r\n </ra-widget-container>\r\n </gridster-item>\r\n </gridster>\r\n\r\n <div class=\"empty-padding kiosk-hide\" *ngIf=\"showEmptyDashboard\">\r\n <div class=\"empty-wrapper\">\r\n <div></div>\r\n <div class=\"m-1 empty-prefix\">\r\n <i class=\"fal fa-edit edit-icon\"></i>\r\n <span class=\"empty-title\">{{'dashboard.emptydashboard'|translate}}</span>\r\n </div>\r\n <div class=\"empty-content light\">\r\n <div>\r\n <div class=\"col-sm-12 empty-msg\">\r\n {{'dashboard.emptydashboardmessage'|translate}} <br />\r\n {{'dashboard.emptydashboardmessage2'|translate}}\r\n </div>\r\n <button *ngIf=\"isWidgetMgmnt\" class=\"btn btnLib btn-sm m-1 dashboard-button light\" (click)=\"addNewWidget()\">\r\n <i class=\"fal fa-plus m-1\"></i>{{'dashboard.addawidgets'|translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <notifier-container></notifier-container>\r\n</div>", styles: ["gridster{width:inherit;resize:height;display:flex;background-color:#ededed;overflow-y:hidden!important}.dvheader{width:100%;height:35px;background:#000;color:#fff;padding:7px 3px 5px 6px;text-transform:uppercase}gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-shadow:0 1px 10px #0000000d}gridster-item:hover{box-shadow:0 1px 10px #00000026}@media screen and (max-width: 685px){.gridster-mobile{height:auto!important;margin-bottom:50px!important}}@media screen and (max-width: 350px){.gridster-mobile{min-height:330px!important;margin-bottom:0!important}}.empty-padding{padding:40px 20px 20px;background-color:#ededed;display:flex;justify-content:center;align-content:center}.empty-wrapper{display:flex;background-color:#fff;border-radius:8px;min-height:125px;width:72%}.empty-prefix{color:#32ad3c;font-size:18px;display:flex;align-items:center;padding:10px 30px;min-width:max-content;min-width:-moz-max-content}.empty-content{color:#333;border-left:solid 1px #a9afb1;width:100%;display:flex;align-items:center;padding:15px 30px 10px 40px}.empty-msg{padding:0 0 5px;font-size:16px}.dashboard-button{padding:5px 10px 5px 5px!important}.btnLib{background-color:#ededed;color:#333!important}.btn-sm,.btn-group-sm>.btn{padding:5px 20px 5px 5px}.edit-icon{color:#32ad3c;font-size:24px;margin-right:15px}.empty-title{margin-top:10px}@media screen and (max-width: 600px){.empty-padding{padding:10px;background-color:#ededed;width:100%;display:block}.empty-wrapper{display:flex;background-color:#fff;border-radius:8px;min-height:125px;width:100%}.empty-prefix{color:#32ad3c;font-size:16px;display:flex;height:40px;padding:6px 10px 8px}.empty-content{color:#333;display:flex;padding:5px 10px 10px;margin-top:44px;margin-left:-185px;border-left:none}.empty-msg{padding:12px 10px 10px 5px;font-size:14px;border-top:solid 1px #a9afb1}.edit-icon{color:#32ad3c;font-size:20px;margin-right:6px}.empty-title{margin-top:6px}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: GridsterComponent, selector: "gridster", inputs: ["options"] }, { kind: "component", type: GridsterItemComponent, selector: "gridster-item", inputs: ["item"], outputs: ["itemInit", "itemChange", "itemResize"] }, { kind: "component", type: i4.NotifierContainerComponent, selector: "notifier-container" }, { kind: "component", type: RAWidgetContainer, selector: "ra-widget-container", inputs: ["widget-instance-id", "global-filter", "data", "event-bus", "app-config", "widget-width", "widget-height", "grid-cell-height", "dom-resized"], outputs: ["widgetDeleted", "updateAppliedFilters"] }, { kind: "pipe", type: i3.RATranslatePipe, name: "translate" }] }); }
5241
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardArea, deps: [{ token: RaDashboardService }, { token: i0.NgZone }, { token: i2$1.NgxUiLoaderService }, { token: i3.RATranslateService }, { token: i4.NotifierService }, { token: RADashboardResponsiveService }, { token: i3.RAPermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
5242
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.1", type: RADashboardArea, selector: "ra-dashboard-area", inputs: { userDashboardId: ["user-dashboard-id", "userDashboardId"], areaKey: ["area-key", "areaKey"], globalFilter: ["global-filter", "globalFilter"], raDashboardEventBus: ["event-bus", "raDashboardEventBus"], widgetHeight: ["widget-height", "widgetHeight"], widgetWidth: ["widget-width", "widgetWidth"], appConfig: ["app-config", "appConfig"], dashboardInfo: ["dashboard-info", "dashboardInfo"], templateConfig: "templateConfig" }, outputs: { hideDashboardBanner: "hideDashboardBanner" }, viewQueries: [{ propertyName: "gridWrapper", first: true, predicate: ["gridWrapper"], descendants: true }, { propertyName: "divBottom", first: true, predicate: ["divBottom"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #gridWrapper class=\"wrap gridster gridster-mobile\"\r\n [ngStyle]=\"{'height': userWidgets.length > 0 ? (gridheight + 'px') : 'unset'}\">\r\n <!-- <div #gridWrapper class=\"wrap gridster\"> -->\r\n <gridster [options]=\"options\" style=\"height:100%;\" *ngIf=\"userWidgets.length > 0\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetList\">\r\n <ra-widget-container (widgetLoaded)=\"widgetLoaded(item)\" [canLoadData]=\"item.canLoadData\" (dataLoaded)=\"dataLoaded($event)\"\r\n [bulk-action-data]=\"bulkActionData\" [dashboard-info]=\"dashboardInfo\" [app-config]=\"appConfig\"\r\n [event-bus]=\"raDashboardEventBus\" (widgetDeleted)=\"deleteWidget($event)\" [data]=\"item\"\r\n [global-filter]=\"globalFilter\" [grid-cell-height]=\"gridcellHeight\" *ngIf=\"gridcellHeight && gridcellHeight > 0\"\r\n [widget-width]=\"item.cols\" [widget-height]=\"item.rows\" [widget-instance-id]=\"item.widgetInstanceId\"\r\n [dom-resized]=\"domResized\" (updateAppliedFilters)=\"updateAppliedFilters($event)\">\r\n </ra-widget-container>\r\n </gridster-item>\r\n </gridster>\r\n\r\n <div class=\"empty-padding kiosk-hide\" *ngIf=\"showEmptyDashboard\">\r\n <div class=\"empty-wrapper\">\r\n <div></div>\r\n <div class=\"empty-prefix\">\r\n <!-- <i class=\"fal fa-edit edit-icon\"></i> -->\r\n <span>{{emptyDashboardTitle}}</span>\r\n </div>\r\n <hr class=\"horizontalLine-solid\" />\r\n <div class=\"empty-content light\">\r\n <div>\r\n <div class=\"col-sm-12 empty-msg\">\r\n {{emptyDashboardMsg1}} <br />\r\n {{emptyDashboardMsg2}}\r\n </div>\r\n <button *ngIf=\"isWidgetMgmnt\" class=\"btn btnLib btn-sm dashboard-button light\" (click)=\"buttonClick()\">\r\n <i class=\"{{emptyDashboardButtonIcon}}\"></i>{{emptyDashboardButtonText}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <notifier-container></notifier-container>\r\n</div>\r\n<div #divBottom></div>", styles: ["gridster{width:inherit;resize:height;display:flex;background-color:#fff;overflow-y:hidden!important}.dvheader{width:100%;height:35px;background:#000;color:#fff;padding:7px 3px 5px 6px;text-transform:uppercase}gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-shadow:none}gridster-item:hover{box-shadow:0 1px 10px #00000026!important}@media screen and (max-width: 685px){.gridster-mobile{height:auto!important;margin-bottom:50px!important}}@media screen and (max-width: 350px){.gridster-mobile{min-height:330px!important;margin-bottom:0!important}}.empty-padding{padding:15px 0;background-color:#fff;display:flex}.empty-wrapper{background-color:#fff;border:1px solid #9FA0A4;min-height:125px;width:100%}.empty-prefix{color:#32ad3c;font-size:18px;padding:15px}.empty-content{color:#626469;width:100%;padding:15px}.empty-msg{padding:0 0 15px;font-size:16px}.horizontalLine-solid{border-top:1px solid #cbcbcb;margin:0 15px}.dashboard-button{padding:5px 10px 5px 5px!important}.btnLib{background-color:#ededed;color:#333!important}.btn-sm,.btn-group-sm>.btn{padding:5px 20px 5px 5px}.edit-icon{color:#32ad3c;font-size:24px;margin-right:15px}.empty-title{margin-top:10px}@media screen and (max-width: 600px){.empty-padding{padding:15px 0;background-color:#fff;width:100%;display:block}.empty-wrapper{display:flex;background-color:#fff;border:1px solid #9FA0A4;min-height:125px;width:100%}.empty-prefix{color:#32ad3c;font-size:16px;display:flex;height:40px;padding:15px}.empty-content{color:#333;display:flex;padding:15px}.empty-msg{padding:0 0 15px;font-size:14px}.edit-icon{color:#32ad3c;font-size:20px;margin-right:6px}.empty-title{margin-top:6px}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: GridsterComponent, selector: "gridster", inputs: ["options"] }, { kind: "component", type: GridsterItemComponent, selector: "gridster-item", inputs: ["item"], outputs: ["itemInit", "itemChange", "itemResize"] }, { kind: "component", type: i4.NotifierContainerComponent, selector: "notifier-container" }, { kind: "component", type: RAWidgetContainer, selector: "ra-widget-container", inputs: ["widget-instance-id", "global-filter", "dashboard-info", "data", "event-bus", "app-config", "widget-width", "widget-height", "grid-cell-height", "bulk-action-data", "canLoadData", "dom-resized"], outputs: ["widgetDeleted", "updateAppliedFilters", "dataLoaded", "widgetLoaded"] }] }); }
4968
5243
  }
4969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardArea, decorators: [{
5244
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardArea, decorators: [{
4970
5245
  type: Component,
4971
- args: [{ selector: 'ra-dashboard-area', template: "<div #gridWrapper class=\"wrap gridster gridster-mobile\" [ngStyle]=\"{'height': userWidgets.length > 0 ? (gridheight + 'px') : 'unset'}\">\r\n <!-- <div #gridWrapper class=\"wrap gridster\"> -->\r\n <gridster [options]=\"options\" style=\"height:100%;\" *ngIf=\"userWidgets.length > 0\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetList\">\r\n <ra-widget-container [app-config]=\"appConfig\" [event-bus]=\"raDashboardEventBus\"\r\n (widgetDeleted)=\"deleteWidget($event)\" [data]=\"item\" [global-filter]=\"globalFilter\"\r\n [grid-cell-height]=\"gridcellHeight\" *ngIf=\"gridcellHeight && gridcellHeight > 0\" [widget-width]=\"item.cols\"\r\n [widget-height]=\"item.rows\" [widget-instance-id]=\"item.widgetInstanceId\" [dom-resized]=\"domResized\"\r\n (updateAppliedFilters)=\"updateAppliedFilters($event)\">\r\n </ra-widget-container>\r\n </gridster-item>\r\n </gridster>\r\n\r\n <div class=\"empty-padding kiosk-hide\" *ngIf=\"showEmptyDashboard\">\r\n <div class=\"empty-wrapper\">\r\n <div></div>\r\n <div class=\"m-1 empty-prefix\">\r\n <i class=\"fal fa-edit edit-icon\"></i>\r\n <span class=\"empty-title\">{{'dashboard.emptydashboard'|translate}}</span>\r\n </div>\r\n <div class=\"empty-content light\">\r\n <div>\r\n <div class=\"col-sm-12 empty-msg\">\r\n {{'dashboard.emptydashboardmessage'|translate}} <br />\r\n {{'dashboard.emptydashboardmessage2'|translate}}\r\n </div>\r\n <button *ngIf=\"isWidgetMgmnt\" class=\"btn btnLib btn-sm m-1 dashboard-button light\" (click)=\"addNewWidget()\">\r\n <i class=\"fal fa-plus m-1\"></i>{{'dashboard.addawidgets'|translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <notifier-container></notifier-container>\r\n</div>", styles: ["gridster{width:inherit;resize:height;display:flex;background-color:#ededed;overflow-y:hidden!important}.dvheader{width:100%;height:35px;background:#000;color:#fff;padding:7px 3px 5px 6px;text-transform:uppercase}gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-shadow:0 1px 10px #0000000d}gridster-item:hover{box-shadow:0 1px 10px #00000026}@media screen and (max-width: 685px){.gridster-mobile{height:auto!important;margin-bottom:50px!important}}@media screen and (max-width: 350px){.gridster-mobile{min-height:330px!important;margin-bottom:0!important}}.empty-padding{padding:40px 20px 20px;background-color:#ededed;display:flex;justify-content:center;align-content:center}.empty-wrapper{display:flex;background-color:#fff;border-radius:8px;min-height:125px;width:72%}.empty-prefix{color:#32ad3c;font-size:18px;display:flex;align-items:center;padding:10px 30px;min-width:max-content;min-width:-moz-max-content}.empty-content{color:#333;border-left:solid 1px #a9afb1;width:100%;display:flex;align-items:center;padding:15px 30px 10px 40px}.empty-msg{padding:0 0 5px;font-size:16px}.dashboard-button{padding:5px 10px 5px 5px!important}.btnLib{background-color:#ededed;color:#333!important}.btn-sm,.btn-group-sm>.btn{padding:5px 20px 5px 5px}.edit-icon{color:#32ad3c;font-size:24px;margin-right:15px}.empty-title{margin-top:10px}@media screen and (max-width: 600px){.empty-padding{padding:10px;background-color:#ededed;width:100%;display:block}.empty-wrapper{display:flex;background-color:#fff;border-radius:8px;min-height:125px;width:100%}.empty-prefix{color:#32ad3c;font-size:16px;display:flex;height:40px;padding:6px 10px 8px}.empty-content{color:#333;display:flex;padding:5px 10px 10px;margin-top:44px;margin-left:-185px;border-left:none}.empty-msg{padding:12px 10px 10px 5px;font-size:14px;border-top:solid 1px #a9afb1}.edit-icon{color:#32ad3c;font-size:20px;margin-right:6px}.empty-title{margin-top:6px}}\n"] }]
5246
+ args: [{ selector: 'ra-dashboard-area', template: "<div #gridWrapper class=\"wrap gridster gridster-mobile\"\r\n [ngStyle]=\"{'height': userWidgets.length > 0 ? (gridheight + 'px') : 'unset'}\">\r\n <!-- <div #gridWrapper class=\"wrap gridster\"> -->\r\n <gridster [options]=\"options\" style=\"height:100%;\" *ngIf=\"userWidgets.length > 0\">\r\n <gridster-item [item]=\"item\" *ngFor=\"let item of widgetList\">\r\n <ra-widget-container (widgetLoaded)=\"widgetLoaded(item)\" [canLoadData]=\"item.canLoadData\" (dataLoaded)=\"dataLoaded($event)\"\r\n [bulk-action-data]=\"bulkActionData\" [dashboard-info]=\"dashboardInfo\" [app-config]=\"appConfig\"\r\n [event-bus]=\"raDashboardEventBus\" (widgetDeleted)=\"deleteWidget($event)\" [data]=\"item\"\r\n [global-filter]=\"globalFilter\" [grid-cell-height]=\"gridcellHeight\" *ngIf=\"gridcellHeight && gridcellHeight > 0\"\r\n [widget-width]=\"item.cols\" [widget-height]=\"item.rows\" [widget-instance-id]=\"item.widgetInstanceId\"\r\n [dom-resized]=\"domResized\" (updateAppliedFilters)=\"updateAppliedFilters($event)\">\r\n </ra-widget-container>\r\n </gridster-item>\r\n </gridster>\r\n\r\n <div class=\"empty-padding kiosk-hide\" *ngIf=\"showEmptyDashboard\">\r\n <div class=\"empty-wrapper\">\r\n <div></div>\r\n <div class=\"empty-prefix\">\r\n <!-- <i class=\"fal fa-edit edit-icon\"></i> -->\r\n <span>{{emptyDashboardTitle}}</span>\r\n </div>\r\n <hr class=\"horizontalLine-solid\" />\r\n <div class=\"empty-content light\">\r\n <div>\r\n <div class=\"col-sm-12 empty-msg\">\r\n {{emptyDashboardMsg1}} <br />\r\n {{emptyDashboardMsg2}}\r\n </div>\r\n <button *ngIf=\"isWidgetMgmnt\" class=\"btn btnLib btn-sm dashboard-button light\" (click)=\"buttonClick()\">\r\n <i class=\"{{emptyDashboardButtonIcon}}\"></i>{{emptyDashboardButtonText}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <notifier-container></notifier-container>\r\n</div>\r\n<div #divBottom></div>", styles: ["gridster{width:inherit;resize:height;display:flex;background-color:#fff;overflow-y:hidden!important}.dvheader{width:100%;height:35px;background:#000;color:#fff;padding:7px 3px 5px 6px;text-transform:uppercase}gridster-item{box-sizing:border-box;z-index:1;position:absolute;overflow:hidden;transition:.3s;display:none;background:#fff;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;box-shadow:none}gridster-item:hover{box-shadow:0 1px 10px #00000026!important}@media screen and (max-width: 685px){.gridster-mobile{height:auto!important;margin-bottom:50px!important}}@media screen and (max-width: 350px){.gridster-mobile{min-height:330px!important;margin-bottom:0!important}}.empty-padding{padding:15px 0;background-color:#fff;display:flex}.empty-wrapper{background-color:#fff;border:1px solid #9FA0A4;min-height:125px;width:100%}.empty-prefix{color:#32ad3c;font-size:18px;padding:15px}.empty-content{color:#626469;width:100%;padding:15px}.empty-msg{padding:0 0 15px;font-size:16px}.horizontalLine-solid{border-top:1px solid #cbcbcb;margin:0 15px}.dashboard-button{padding:5px 10px 5px 5px!important}.btnLib{background-color:#ededed;color:#333!important}.btn-sm,.btn-group-sm>.btn{padding:5px 20px 5px 5px}.edit-icon{color:#32ad3c;font-size:24px;margin-right:15px}.empty-title{margin-top:10px}@media screen and (max-width: 600px){.empty-padding{padding:15px 0;background-color:#fff;width:100%;display:block}.empty-wrapper{display:flex;background-color:#fff;border:1px solid #9FA0A4;min-height:125px;width:100%}.empty-prefix{color:#32ad3c;font-size:16px;display:flex;height:40px;padding:15px}.empty-content{color:#333;display:flex;padding:15px}.empty-msg{padding:0 0 15px;font-size:14px}.edit-icon{color:#32ad3c;font-size:20px;margin-right:6px}.empty-title{margin-top:6px}}\n"] }]
4972
5247
  }], ctorParameters: () => [{ type: RaDashboardService }, { type: i0.NgZone }, { type: i2$1.NgxUiLoaderService }, { type: i3.RATranslateService }, { type: i4.NotifierService }, { type: RADashboardResponsiveService }, { type: i3.RAPermissionService }], propDecorators: { userDashboardId: [{
4973
5248
  type: Input,
4974
5249
  args: ['user-dashboard-id']
@@ -4990,11 +5265,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
4990
5265
  }], appConfig: [{
4991
5266
  type: Input,
4992
5267
  args: ['app-config']
5268
+ }], dashboardInfo: [{
5269
+ type: Input,
5270
+ args: ['dashboard-info']
5271
+ }], templateConfig: [{
5272
+ type: Input
4993
5273
  }], hideDashboardBanner: [{
4994
5274
  type: Output
4995
5275
  }], gridWrapper: [{
4996
5276
  type: ViewChild,
4997
5277
  args: ['gridWrapper', { static: false }]
5278
+ }], divBottom: [{
5279
+ type: ViewChild,
5280
+ args: ['divBottom', { static: false }]
4998
5281
  }] } });
4999
5282
 
5000
5283
  const customNotifierOptions = {
@@ -5039,11 +5322,11 @@ const customNotifierOptions = {
5039
5322
  };
5040
5323
 
5041
5324
  class GridsterModule {
5042
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5043
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule, imports: [GridsterComponent, GridsterItemComponent], exports: [GridsterComponent, GridsterItemComponent] }); }
5044
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule }); }
5325
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5326
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: GridsterModule, imports: [GridsterComponent, GridsterItemComponent], exports: [GridsterComponent, GridsterItemComponent] }); }
5327
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterModule }); }
5045
5328
  }
5046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule, decorators: [{
5329
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GridsterModule, decorators: [{
5047
5330
  type: NgModule,
5048
5331
  args: [{
5049
5332
  imports: [GridsterComponent, GridsterItemComponent],
@@ -5052,15 +5335,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
5052
5335
  }] });
5053
5336
 
5054
5337
  class DashboardFrameworkModule {
5055
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DashboardFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5056
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: DashboardFrameworkModule, bootstrap: [RADashboardArea], declarations: [RADashboardArea,
5338
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DashboardFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5339
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.1", ngImport: i0, type: DashboardFrameworkModule, bootstrap: [RADashboardArea], declarations: [RADashboardArea,
5057
5340
  RAWidgetContainer,
5058
5341
  LockTooltip], imports: [BrowserModule,
5059
5342
  GridsterModule,
5060
5343
  HttpClientModule,
5061
5344
  NgxUiLoaderModule, i4.NotifierModule, RACommonModule,
5062
5345
  RACommonControlsModule], exports: [RADashboardArea] }); }
5063
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DashboardFrameworkModule, imports: [BrowserModule,
5346
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DashboardFrameworkModule, imports: [BrowserModule,
5064
5347
  GridsterModule,
5065
5348
  HttpClientModule,
5066
5349
  NgxUiLoaderModule,
@@ -5068,7 +5351,7 @@ class DashboardFrameworkModule {
5068
5351
  RACommonModule,
5069
5352
  RACommonControlsModule] }); }
5070
5353
  }
5071
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DashboardFrameworkModule, decorators: [{
5354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: DashboardFrameworkModule, decorators: [{
5072
5355
  type: NgModule,
5073
5356
  args: [{
5074
5357
  declarations: [
@@ -5124,10 +5407,10 @@ class RADashboardEventBus {
5124
5407
  return event.eventName == eventName && event.key == key && event.value == value;
5125
5408
  }), map(event => event.data));
5126
5409
  }
5127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardEventBus, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5128
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardEventBus, providedIn: 'root' }); }
5410
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardEventBus, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5411
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardEventBus, providedIn: 'root' }); }
5129
5412
  }
5130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardEventBus, decorators: [{
5413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RADashboardEventBus, decorators: [{
5131
5414
  type: Injectable,
5132
5415
  args: [{
5133
5416
  providedIn: 'root'
@@ -5137,11 +5420,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
5137
5420
  class RaBaseDashboardTemplate {
5138
5421
  constructor(ngZone) {
5139
5422
  this.ngZone = ngZone;
5140
- this.initialize = (eventBus, userDashboardId, appConfig) => {
5423
+ this.initialize = (eventBus, userDashboardId, appConfig, dashboardInfo, templateConfig) => {
5141
5424
  this.ngZone.run(() => {
5142
5425
  this.userDashboardId = userDashboardId;
5143
5426
  this.appConfig = appConfig;
5144
5427
  this.raDashboardEventBus = eventBus;
5428
+ this.dashboardInfo = dashboardInfo;
5429
+ this.templateConfig = templateConfig;
5145
5430
  });
5146
5431
  this.init();
5147
5432
  };
@@ -5150,10 +5435,10 @@ class RaBaseDashboardTemplate {
5150
5435
  var myEvent = new CustomEvent("event-template-initiated");
5151
5436
  document.body.dispatchEvent(myEvent);
5152
5437
  }
5153
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaBaseDashboardTemplate, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
5154
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: RaBaseDashboardTemplate, inputs: { dashboardId: ["dashboard-id", "dashboardId"], globalFilter: ["global-filter", "globalFilter"], initialize: "initialize" }, ngImport: i0 }); }
5438
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RaBaseDashboardTemplate, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
5439
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: RaBaseDashboardTemplate, inputs: { dashboardId: ["dashboard-id", "dashboardId"], globalFilter: ["global-filter", "globalFilter"], initialize: "initialize" }, ngImport: i0 }); }
5155
5440
  }
5156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaBaseDashboardTemplate, decorators: [{
5441
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RaBaseDashboardTemplate, decorators: [{
5157
5442
  type: Directive
5158
5443
  }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { dashboardId: [{
5159
5444
  type: Input,
@@ -5187,10 +5472,10 @@ class RaBaseDashboardFilter {
5187
5472
  var myEvent = new CustomEvent("global-filter-initiated");
5188
5473
  document.body.dispatchEvent(myEvent);
5189
5474
  }
5190
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaBaseDashboardFilter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5191
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.1", type: RaBaseDashboardFilter, inputs: { getAllFilterConfig: "getAllFilterConfig", setInapplicableFilterMsg: "setInapplicableFilterMsg", isValidEntry: "isValidEntry", clearAllData: "clearAllData", setAllFilterConfig: "setAllFilterConfig" }, ngImport: i0 }); }
5475
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RaBaseDashboardFilter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5476
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.1", type: RaBaseDashboardFilter, inputs: { getAllFilterConfig: "getAllFilterConfig", setInapplicableFilterMsg: "setInapplicableFilterMsg", isValidEntry: "isValidEntry", clearAllData: "clearAllData", setAllFilterConfig: "setAllFilterConfig" }, ngImport: i0 }); }
5192
5477
  }
5193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaBaseDashboardFilter, decorators: [{
5478
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: RaBaseDashboardFilter, decorators: [{
5194
5479
  type: Directive
5195
5480
  }], propDecorators: { getAllFilterConfig: [{
5196
5481
  type: Input