@schneideress/dashboardframework 17.0.4 → 17.0.6

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.5", 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.5", 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.5", 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.5", ngImport: i0, type: RADashboardResponsiveService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
360
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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.5", 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,12 @@ class RAWidgetContainer {
3822
3848
  this.showExcell = true;
3823
3849
  this.hideTitle = false;
3824
3850
  this.inapplicableFilters = [];
3851
+ this.isCustomElement = false;
3852
+ this.canLoadData = false;
3825
3853
  this.widgetDeleted = new EventEmitter();
3826
3854
  this.updateAppliedFilters = new EventEmitter();
3855
+ this.dataLoaded = new EventEmitter();
3856
+ this.widgetLoaded = new EventEmitter();
3827
3857
  this.isWidgetStateApplicable = false;
3828
3858
  this.widgetEmptyState = '';
3829
3859
  this.lockVisible = false;
@@ -3857,19 +3887,32 @@ class RAWidgetContainer {
3857
3887
  });
3858
3888
  });
3859
3889
  }
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);
3890
+ if (this.widgetElement) {
3891
+ if (changes.bulkActionData && changes.bulkActionData.currentValue != changes.bulkActionData.previousValue) {
3892
+ if (typeof this.widgetElement.bulkActionClicked === "function") {
3893
+ this.widgetElement.bulkActionClicked(this.bulkActionData);
3894
+ }
3865
3895
  }
3866
- else {
3867
- this.refreshWidget(this.data.widgetInfo);
3896
+ if (changes.globalFilter && changes.globalFilter.currentValue != changes.globalFilter.previousValue) {
3897
+ if (!this.dashboardInfo.curatedFilters) {
3898
+ let filterObj = this.getParsedConfig(this.globalFilter);
3899
+ if (filterObj.WidgetInstanceId) {
3900
+ if (this.data.widgetInfo.widgetInstanceId != filterObj.WidgetInstanceId)
3901
+ this.refreshWidget(this.data.widgetInfo);
3902
+ }
3903
+ else {
3904
+ //this.refreshWidget(this.data.widgetInfo);
3905
+ }
3906
+ }
3907
+ }
3908
+ if (changes['width'] && changes['width'].currentValue != changes['width'].previousValue ||
3909
+ (changes['height'] && changes['height'].currentValue != changes['height'].previousValue)) {
3910
+ this.invokeWidgetResizedEvent();
3868
3911
  }
3869
3912
  }
3870
- if (changes['width'] && changes['width'].currentValue != changes['width'].previousValue ||
3871
- (changes['height'] && changes['height'].currentValue != changes['height'].previousValue)) {
3872
- this.invokeWidgetResizedEvent();
3913
+ if (changes.canLoadData && changes.canLoadData.currentValue != changes.canLoadData.previousValue) {
3914
+ if (this.canLoadData)
3915
+ this.refreshWidget(this.data.widgetInfo);
3873
3916
  }
3874
3917
  }
3875
3918
  invokeWidgetResizedEvent() {
@@ -4028,107 +4071,225 @@ class RAWidgetContainer {
4028
4071
  }
4029
4072
  this.detailPageUrl = widgetInfo.detailPageUrl;
4030
4073
  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;
4074
+ if (widgetInfo.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
+ loadRemoteModule({
4185
+ type: 'module',
4186
+ remoteEntry: widgetInfo.scriptUrl,
4187
+ exposedModule: './' + widgetInfo.widgetComponent
4188
+ }).then((m) => {
4189
+ var component = me.ctlWidgetModule.createComponent(m[widgetInfo.widgetComponent]);
4190
+ let instance = component.instance;
4191
+ let widgetElement = component.location.nativeElement;
4192
+ this.setNotConfiguredState(widgetInfo);
4193
+ let appModule = this.data.widgetInfo.widgetName;
4194
+ if (this.data.widgetInfo.applicationModule && this.data.widgetInfo.applicationModule.length > 0) {
4195
+ appModule = this.data.widgetInfo.applicationModule;
4196
+ }
4197
+ this.translateService.loadTranslations(this.appConfig.appManagementBaseUrl, appModule, false).then(() => {
4198
+ me.widgetElement = widgetElement;
4199
+ me.widgetElement.setAttribute("widget-instance-id", widgetInfo.widgetInstanceId);
4200
+ instance.widgetInstanceId = widgetInfo.widgetInstanceId;
4201
+ let handler = function (event) {
4202
+ setTimeout(async () => {
4203
+ instance.onWidgetRespond.subscribe((e) => {
4204
+ var type = e.type;
4205
+ switch (type) {
4206
+ case 'onDataLoad':
4207
+ if (e.data)
4208
+ me.showPanel = true;
4209
+ else
4210
+ me.showPanel = false;
4211
+ break;
4212
+ case 'onConfigEditClicked':
4213
+ me.editWidget();
4214
+ break;
4215
+ case 'onEnableDefaultState':
4216
+ me.setEmptyState(e.data);
4217
+ break;
4218
+ case 'onSetTitleUnderline':
4219
+ if (e.data == true)
4220
+ me.enableTitleLine = true;
4221
+ else
4222
+ me.enableTitleLine = me.enableTitleLineActual;
4223
+ break;
4224
+ case 'onWidgetTitleHidden':
4225
+ if (e.data == true)
4226
+ me.hideTitle = true;
4227
+ else
4228
+ me.hideTitle = false;
4229
+ break;
4230
+ case 'onUpdateLockData':
4231
+ me.setLock(e.data);
4232
+ break;
4233
+ case 'onGlobalFilterApplicableCheck':
4234
+ me.setInapplicableFilters(e.data, widgetInfo.widgetInstanceId);
4235
+ break;
4236
+ default:
4237
+ break;
4238
+ }
4239
+ });
4240
+ if (typeof (me.widgetElement.titleLineEnabled) != 'undefined') {
4241
+ let titleLineEnabled = me.widgetElement.titleLineEnabled();
4242
+ if (titleLineEnabled) {
4243
+ me.enableTitleLine = titleLineEnabled;
4244
+ me.enableTitleLineActual = titleLineEnabled;
4245
+ }
4084
4246
  }
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);
4247
+ me.editText = me.translateService.translate('Common.edit');
4248
+ if (me.translateService.translate('Common.edit').length > 6) {
4249
+ me.editText = (me.translateService.translate('Common.edit').substring(0, 6) + '...');
4250
+ me.editToolTipValue = me.translateService.translate('Common.edit');
4251
+ me.editToolTipWidth = "300px";
4252
+ }
4253
+ me.copyText = me.translateService.translate('Common.copy');
4254
+ if (me.translateService.translate('Common.copy').length > 6) {
4255
+ me.copyText = (me.translateService.translate('Common.copy').substring(0, 6) + '...');
4256
+ me.copyToolTipValue = me.translateService.translate('Common.copy');
4257
+ me.copyToolTipWidth = "300px";
4258
+ }
4259
+ me.moveText = me.translateService.translate('Common.move');
4260
+ if (me.translateService.translate('Common.move').length > 6) {
4261
+ me.moveText = (me.translateService.translate('Common.move').substring(0, 6) + '...');
4262
+ me.moveToolTipValue = me.translateService.translate('Common.move');
4263
+ me.moveToolTipWidth = "300px";
4264
+ }
4265
+ me.excelText = me.translateService.translate('Common.excel');
4266
+ if (me.translateService.translate('Common.excel').length > 6) {
4267
+ me.excelText = (me.translateService.translate('Common.excel').substring(0, 6) + '...');
4268
+ me.excelToolTipValue = me.translateService.translate('Common.excel');
4269
+ me.excelToolTipWidth = "300px";
4270
+ }
4271
+ me.deleteText = me.translateService.translate('Common.delete');
4272
+ if (me.translateService.translate('Common.delete').length > 6) {
4273
+ me.deleteText = (me.translateService.translate('Common.delete').substring(0, 6) + '...');
4274
+ me.deleteToolTipValue = me.translateService.translate('Common.delete');
4275
+ me.deleteToolTipWidth = "300px";
4276
+ }
4277
+ me.isWidgetLoaded = true;
4278
+ widgetConfigFilter.appConfig = me.appConfig;
4279
+ widgetConfigFilter.widgetInfo = widgetInfo;
4280
+ widgetConfigFilter.configChanges = me.getConfigChanges(false);
4281
+ widgetConfigFilter.widgetInfo.widgetName = widgetInfo.widgetName;
4282
+ widgetConfigFilter.globalFilter = me.globalFilter;
4283
+ instance.loadContent(widgetConfigFilter);
4284
+ await me.setLock(widgetConfigFilter.config);
4285
+ await me.setDownloadIcon();
4286
+ });
4287
+ }.bind(this);
4288
+ this.widgetElementHandler = handler;
4289
+ document.body.addEventListener('widgetinitiated' + widgetInfo.widgetInstanceId, handler);
4290
+ });
4130
4291
  });
4131
- });
4292
+ }
4132
4293
  }
4133
4294
  /**To set Default State for the widget when it is not configured */
4134
4295
  setNotConfiguredState(widgetInfo, forceEnable = false) {
@@ -4184,7 +4345,8 @@ class RAWidgetContainer {
4184
4345
  globalFilter: this.globalFilter,
4185
4346
  appConfig: this.appConfig,
4186
4347
  widgetInfo: widgetInfo,
4187
- configChanges: this.getConfigChanges(configChanged)
4348
+ configChanges: this.getConfigChanges(configChanged),
4349
+ dashboardInfo: this.dashboardInfo
4188
4350
  };
4189
4351
  if (widgetContainerContext.isWidgetLoaded) {
4190
4352
  if (this.widgetElement && typeof (this.widgetElement.setConfigFilter) == 'function') {
@@ -4346,9 +4508,12 @@ class RAWidgetContainer {
4346
4508
  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
4509
  let settings = '';
4348
4510
  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);
4511
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideEdit)
4512
+ settings += this.getHtmlForButton('wcEditWidget', 'fal fa-edit', this.editText);
4513
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideCopy)
4514
+ settings += this.getHtmlForButton('wcCopyWidget', 'fal fa-copy', this.copyText);
4515
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideMove)
4516
+ settings += this.getHtmlForButton('wcMoveWidget', 'fal fa-arrows-alt', this.moveText);
4352
4517
  }
4353
4518
  let customPageParams = false;
4354
4519
  if (this.data.widgetInfo && this.data.widgetInfo.widgetSettings) {
@@ -4357,14 +4522,14 @@ class RAWidgetContainer {
4357
4522
  customPageParams = true;
4358
4523
  }
4359
4524
  }
4360
- if ((this.detailPageUrl || customPageParams) && this.checkVisitLinkVisiblity()) {
4525
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideVisitPage && (this.detailPageUrl || customPageParams) && this.checkVisitLinkVisiblity()) {
4361
4526
  settings += '<a style="max-height: 30px;align-items: center;align-content: center; display: flex;" id="wcVisitWidget">';
4362
4527
  settings += '<i style="padding-left: 4px;font-size: 27px !important;" class="fal fa-angle-right"></i> ';
4363
4528
  settings += '<span style="padding-left: 11px;margin-top: 2px;" style="padding-left: 6px;">';
4364
4529
  settings += this.translateService.translate('Common.visitpage');
4365
4530
  settings += '</span></a>';
4366
4531
  }
4367
- if ((this.detailPageUrl && this.checkVisitLinkVisiblity()) || this.isWidgetMgmnt) {
4532
+ if (!this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideVisitPage && (this.detailPageUrl && this.checkVisitLinkVisiblity()) || this.isWidgetMgmnt) {
4368
4533
  html += '<div style="color: #9FA0A4;font-size: 12px;padding-top: 8px;padding-left: 12px;">';
4369
4534
  html += this.translateService.translate('Common.settings') + '</div>';
4370
4535
  html += settings;
@@ -4396,7 +4561,7 @@ class RAWidgetContainer {
4396
4561
  if (this.isDownloadIconVisible && this.isWidgetMgmnt && this.showExcell) {
4397
4562
  html += this.getHr();
4398
4563
  }
4399
- if (this.isWidgetMgmnt) {
4564
+ if (this.isWidgetMgmnt && !this.data.widgetInfo.templateWidgetSettings || !this.data.widgetInfo.templateWidgetSettings.hideDelete) {
4400
4565
  html += '<a id="wcWidgetDelete"><i class="fal fa-times" style="padding-left: 3px;color: red;"></i><span>';
4401
4566
  html += this.deleteText;
4402
4567
  html += '</span></a>';
@@ -4491,15 +4656,18 @@ class RAWidgetContainer {
4491
4656
  else
4492
4657
  return item;
4493
4658
  }
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"] }] }); }
4659
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", 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 }); }
4660
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", 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
4661
  }
4497
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RAWidgetContainer, decorators: [{
4662
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RAWidgetContainer, decorators: [{
4498
4663
  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>" }]
4664
+ 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
4665
  }], 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
4666
  type: ViewChild,
4502
4667
  args: ['ctlWidget', { static: false }]
4668
+ }], ctlWidgetModule: [{
4669
+ type: ViewChild,
4670
+ args: ['ctlWidgetModule', { read: ViewContainerRef, static: true }]
4503
4671
  }], widgetDropdown: [{
4504
4672
  type: ViewChild,
4505
4673
  args: ['widgetDropdown', { static: false }]
@@ -4521,6 +4689,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
4521
4689
  }], globalFilter: [{
4522
4690
  type: Input,
4523
4691
  args: ['global-filter']
4692
+ }], dashboardInfo: [{
4693
+ type: Input,
4694
+ args: ['dashboard-info']
4524
4695
  }], data: [{
4525
4696
  type: Input,
4526
4697
  args: ['data']
@@ -4539,10 +4710,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
4539
4710
  }], gridCellHeight: [{
4540
4711
  type: Input,
4541
4712
  args: ['grid-cell-height']
4713
+ }], bulkActionData: [{
4714
+ type: Input,
4715
+ args: ['bulk-action-data']
4716
+ }], canLoadData: [{
4717
+ type: Input
4542
4718
  }], widgetDeleted: [{
4543
4719
  type: Output
4544
4720
  }], updateAppliedFilters: [{
4545
4721
  type: Output
4722
+ }], dataLoaded: [{
4723
+ type: Output
4724
+ }], widgetLoaded: [{
4725
+ type: Output
4546
4726
  }], setResized: [{
4547
4727
  type: Input,
4548
4728
  args: ['dom-resized']
@@ -4566,13 +4746,20 @@ class RADashboardArea {
4566
4746
  this.domResized = false;
4567
4747
  this.showEmptyDashboard = false;
4568
4748
  this.isWidgetMgmnt = false;
4749
+ this.initialWidgetCount = 10;
4750
+ this.currentLoadedIndex = 0;
4751
+ this.loading = false;
4569
4752
  this.widgetHeight = 2;
4570
4753
  this.widgetWidth = 4;
4571
4754
  this.hideDashboardBanner = new EventEmitter();
4572
4755
  }
4573
4756
  ngOnInit() {
4757
+ window.addEventListener('scroll', () => {
4758
+ this.loadNext();
4759
+ });
4574
4760
  this.isWidgetMgmnt = this.permissionService.hasPermission('ra.widgetmanagement');
4575
4761
  this.initiateGridsterConfig();
4762
+ this.setEmptyDashboardConfig();
4576
4763
  this.lastViewType = this.responsiveService.IsDesktopView ? 'desktop' : 'mobile';
4577
4764
  this.responsiveService.resized.subscribe((isDesktop) => {
4578
4765
  if (this.lastViewType != (isDesktop ? 'desktop' : 'mobile') || !isDesktop) {
@@ -4601,6 +4788,11 @@ class RADashboardArea {
4601
4788
  }, 100);
4602
4789
  }
4603
4790
  });
4791
+ setTimeout(() => {
4792
+ this.bulkActionClick = this.raDashboardEventBus.subscribe(RAEvent.BulkActionClick).subscribe((data) => {
4793
+ this.bulkActionData = JSON.parse(JSON.stringify(data)); // To create a new reference;
4794
+ });
4795
+ });
4604
4796
  }
4605
4797
  ngOnChanges(changes) {
4606
4798
  this.isWidgetMgmnt = this.permissionService.hasPermission('ra.widgetmanagement');
@@ -4608,27 +4800,43 @@ class RADashboardArea {
4608
4800
  this.isWidgetLoaded = true;
4609
4801
  this.loadWidgets(this.userDashboardId, this.areaKey);
4610
4802
  }
4803
+ this.initiateGridsterConfig();
4611
4804
  if (changes['raDashboardEventBus'] && changes['raDashboardEventBus'].currentValue != changes['raDashboardEventBus'].previousValue) {
4612
4805
  this.inititateEventBusSubscritions();
4613
4806
  }
4614
4807
  }
4808
+ setEmptyDashboardConfig() {
4809
+ if (this.dashboardInfo && this.dashboardInfo.templateConfig.emptyDashboardHeader) {
4810
+ this.emptyDashboardTitle = this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.titleKey);
4811
+ this.emptyDashboardMsg1 = this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.descriptionKey1);
4812
+ this.emptyDashboardMsg2 = (this.dashboardInfo.templateConfig.emptyDashboardHeader.descriptionKey2) ? this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.descriptionKey2) : '';
4813
+ this.emptyDashboardButtonText = this.translateService.translate("dashboard." + this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonTextKey);
4814
+ this.emptyDashboardButtonIcon = this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonIcon ? this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonIcon : '';
4815
+ this.emptyDashboardButtonAction = this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonAction ? this.dashboardInfo.templateConfig.emptyDashboardHeader.buttonAction : '';
4816
+ }
4817
+ }
4615
4818
  /**To set GridsterConfig */
4616
4819
  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);
4820
+ if (this.dashboardInfo) {
4821
+ /**To override default configuration values to the gridster control */
4822
+ this.options = this.responsiveService.getGridsterConfig(this.isWidgetMgmnt, this.dashboardInfo.templateConfig.widget.canResize, this.dashboardInfo.templateConfig.widget.canMove);
4823
+ this.options.initCallback = (gridster) => {
4824
+ if (this.options.api) {
4825
+ this.gridcellHeight = this.options.api.getCurrentRowHeight();
4628
4826
  }
4629
- }
4630
- this.setAreaHeight();
4631
- };
4827
+ };
4828
+ this.options.itemChangeCallback = (item) => {
4829
+ if (this.responsiveService.IsDesktopView) {
4830
+ if (item.widgetInfo && item.widgetInfo.widgetInstanceId) {
4831
+ this.updateWidgetPosition(item.widgetInfo.widgetInstanceId);
4832
+ }
4833
+ }
4834
+ this.setAreaHeight();
4835
+ };
4836
+ }
4837
+ }
4838
+ widgetLoaded(widget) {
4839
+ widget.canLoadData = true;
4632
4840
  }
4633
4841
  /** To initiate eventbus subsctiptions */
4634
4842
  inititateEventBusSubscritions() {
@@ -4647,6 +4855,11 @@ class RADashboardArea {
4647
4855
  this.addWidget(e);
4648
4856
  });
4649
4857
  });
4858
+ this.curatedFilterChange = this.raDashboardEventBus.subscribe(RAEvent.CuratedFilterChange).subscribe((e) => {
4859
+ this.ngZone.run(() => {
4860
+ this.loadWidgets(this.userDashboardId, this.areaKey);
4861
+ });
4862
+ });
4650
4863
  this.rearrangeWidgetClick = this.raDashboardEventBus.subscribe(RAEvent.RearrangeClicked).subscribe((e) => {
4651
4864
  this.ngZone.run(() => {
4652
4865
  this.rearrangeWidgets();
@@ -4695,6 +4908,10 @@ class RADashboardArea {
4695
4908
  this.widgetLibraryDoneClick.unsubscribe();
4696
4909
  if (this.rearrangeWidgetClick)
4697
4910
  this.rearrangeWidgetClick.unsubscribe();
4911
+ if (this.curatedFilterChange)
4912
+ this.curatedFilterChange.unsubscribe();
4913
+ if (this.bulkActionClick)
4914
+ this.bulkActionClick.unsubscribe();
4698
4915
  }
4699
4916
  /**To update position/dimention of all widgets in the area */
4700
4917
  updateWidgets() {
@@ -4730,6 +4947,13 @@ class RADashboardArea {
4730
4947
  }
4731
4948
  /** To retrieve widgets based on userDashboardid and area name */
4732
4949
  loadWidgets(userDashboarId, areaKey) {
4950
+ if (this.templateConfig && this.templateConfig.initialWidgetCount)
4951
+ this.initialWidgetCount = this.templateConfig.initialWidgetCount;
4952
+ window.scrollTo(0, 0);
4953
+ if (location.href.indexOf('/kiosk/') > -1)
4954
+ this.initialWidgetCount = 1000;
4955
+ this.currentLoadedIndex = 0;
4956
+ this.loading = false;
4733
4957
  let widgetInfo = {
4734
4958
  dashboardId: userDashboarId.toString(),
4735
4959
  dashboardAreaKey: areaKey
@@ -4749,8 +4973,7 @@ class RADashboardArea {
4749
4973
  this.checkPAMWidgets();
4750
4974
  if (widgets && widgets.length > 0) {
4751
4975
  this.dashboardService.clientId = widgets[0].clientId;
4752
- this.widgetList = this.mapObjectListToGridsterItemList(widgets);
4753
- this.setAreaHeight();
4976
+ this.loadWidgetsDelta();
4754
4977
  this.raDashboardEventBus.publish(RAEvent.HideDashboardBanner, false);
4755
4978
  }
4756
4979
  else {
@@ -4759,6 +4982,43 @@ class RADashboardArea {
4759
4982
  }
4760
4983
  });
4761
4984
  }
4985
+ loadWidgetsDelta() {
4986
+ if (!this.loading) {
4987
+ this.loading = true;
4988
+ let widgets = this.mapObjectListToGridsterItemList(this.userWidgets.slice(this.currentLoadedIndex, (this.currentLoadedIndex + this.initialWidgetCount)));
4989
+ this.currentLoadedIndex += this.initialWidgetCount;
4990
+ this.widgetList.push(...widgets);
4991
+ this.setAreaHeight();
4992
+ setTimeout(() => {
4993
+ this.loading = false;
4994
+ });
4995
+ }
4996
+ }
4997
+ dataLoaded(widgetElement) {
4998
+ this.loadNext();
4999
+ }
5000
+ loadNext() {
5001
+ if (this.divBottom) {
5002
+ if (this.elementInViewport(this.divBottom.nativeElement)) {
5003
+ this.loadWidgetsDelta();
5004
+ }
5005
+ }
5006
+ }
5007
+ elementInViewport(el) {
5008
+ var top = el.offsetTop;
5009
+ var left = el.offsetLeft;
5010
+ var width = el.offsetWidth;
5011
+ var height = el.offsetHeight;
5012
+ while (el.offsetParent) {
5013
+ el = el.offsetParent;
5014
+ top += el.offsetTop;
5015
+ left += el.offsetLeft;
5016
+ }
5017
+ return (top >= window.scrollY &&
5018
+ left >= window.scrollX &&
5019
+ (top + height) <= (window.scrollY + window.innerHeight) &&
5020
+ (left + width) <= (window.scrollX + window.innerWidth));
5021
+ }
4762
5022
  /** To set Area(Gridster) height dynamically as widgets are added/removed */
4763
5023
  setAreaHeight() {
4764
5024
  setTimeout(() => {
@@ -4800,22 +5060,22 @@ class RADashboardArea {
4800
5060
  }
4801
5061
  /** To remove a widget instance from dashboard and to save info in database */
4802
5062
  deleteWidget(widgetInstanceId, isalertDisabled = false) {
5063
+ let widget = this.userWidgets.filter((item) => {
5064
+ return item.widgetInstanceId === widgetInstanceId;
5065
+ });
5066
+ if (widget.length > 0) {
5067
+ this.userWidgets.splice(this.userWidgets.indexOf(widget[0]), 1);
5068
+ }
5069
+ if (this.PAMWidgets.length > 0) {
5070
+ var indx = this.PAMWidgets.indexOf(widgetInstanceId);
5071
+ if (indx > -1)
5072
+ this.PAMWidgets.splice(indx, 1);
5073
+ this.checkPAMWidgets();
5074
+ }
4803
5075
  let gridsterItem = this.widgetList.filter((item) => {
4804
5076
  return item.widgetInfo.widgetInstanceId === widgetInstanceId;
4805
5077
  });
4806
5078
  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
5079
  this.widgetList.splice(this.widgetList.indexOf(gridsterItem[0]), 1);
4820
5080
  this.setAreaHeight();
4821
5081
  if (!isalertDisabled) {
@@ -4829,11 +5089,15 @@ class RADashboardArea {
4829
5089
  }
4830
5090
  /**To rearrange widgets position in the dashboard, compactLeft&Up,compactLeft,compactUp,etc*/
4831
5091
  rearrangeWidgets() {
5092
+ this.currentLoadedIndex = 0;
5093
+ this.loading = false;
4832
5094
  for (let i = 0; i < this.userWidgets.length; i++) {
4833
5095
  this.userWidgets[i].position_x = 0;
4834
5096
  this.userWidgets[i].position_y = 0;
4835
5097
  }
4836
- this.widgetList = this.mapObjectListToGridsterItemList(this.userWidgets);
5098
+ this.widgetList = [];
5099
+ this.loadWidgetsDelta();
5100
+ this.raDashboardEventBus.publish(RAEvent.HideDashboardBanner, false);
4837
5101
  if (this.widgetList.length > 0)
4838
5102
  this.updateWidgetPosition(this.widgetList[0].widgetInfo.widgetInstanceId);
4839
5103
  setTimeout(() => {
@@ -4865,29 +5129,32 @@ class RADashboardArea {
4865
5129
  this.ngxService.start();
4866
5130
  this.dashboardService.addWidget(data, this.appConfig).subscribe(widget => {
4867
5131
  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;
5132
+ if (this.currentLoadedIndex >= (this.userWidgets.length - 1)) {
5133
+ this.currentLoadedIndex++;
5134
+ let gridsterItem = this.responsiveService.getGridsterItem(widget);
5135
+ this.widgetList.push(gridsterItem);
5136
+ this.setAreaHeight();
5137
+ if (this.options.api) {
5138
+ let curRowHeight = Number(this.options.api.getCurrentRowHeight());
5139
+ if (curRowHeight > 0) {
5140
+ widget.rowHeight = curRowHeight;
5141
+ this.gridcellHeight = curRowHeight;
5142
+ }
4876
5143
  }
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
- });
5144
+ var widgetInstanceId = 0;
5145
+ if (widget && widget.widgetInstanceId) {
5146
+ widgetInstanceId = widget.widgetInstanceId;
5147
+ /**To save added widget position in db */
5148
+ if (this.responsiveService.IsDesktopView) {
5149
+ setTimeout(() => {
5150
+ this.updateWidgetPosition(widgetInstanceId);
5151
+ });
5152
+ }
5153
+ }
5154
+ if (widget.settings && widget.settings.isPAMWidget) {
5155
+ this.PAMWidgets.push(widget.widgetInstanceId);
5156
+ this.checkPAMWidgets();
4886
5157
  }
4887
- }
4888
- if (widget.settings && widget.settings.isPAMWidget) {
4889
- this.PAMWidgets.push(widget.widgetInstanceId);
4890
- this.checkPAMWidgets();
4891
5158
  }
4892
5159
  this.raDashboardEventBus.publish(RAEvent.WidgetAdded, widget);
4893
5160
  });
@@ -4917,12 +5184,15 @@ class RADashboardArea {
4917
5184
  });
4918
5185
  }
4919
5186
  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();
5187
+ if (this.currentLoadedIndex >= (this.userWidgets.length - 1)) {
5188
+ this.currentLoadedIndex++;
5189
+ let gridsterItem = this.responsiveService.getGridsterItem(data);
5190
+ this.widgetList.push(gridsterItem);
5191
+ this.setAreaHeight();
5192
+ if (data.settings && data.settings.isPAMWidget) {
5193
+ this.PAMWidgets.push(data.widgetInstanceId);
5194
+ this.checkPAMWidgets();
5195
+ }
4926
5196
  }
4927
5197
  }
4928
5198
  mapObjectListToGridsterItemList(widgetList) {
@@ -4949,8 +5219,11 @@ class RADashboardArea {
4949
5219
  });
4950
5220
  return widgetListArray;
4951
5221
  }
4952
- addNewWidget() {
4953
- this.raDashboardEventBus.publish(RAEvent.AddNewWidgetToDashboard, null);
5222
+ buttonClick() {
5223
+ if (this.emptyDashboardButtonAction == "widgets")
5224
+ this.raDashboardEventBus.publish(RAEvent.AddNewWidgetToDashboard, null);
5225
+ else if (this.emptyDashboardButtonAction == "filter")
5226
+ this.raDashboardEventBus.publish(RAEvent.GlobalFilterClick, null);
4954
5227
  }
4955
5228
  updateAppliedFilters(data) {
4956
5229
  this.raDashboardEventBus.publish(RAEvent.UpdateAppledFiterForInapplicableFilter, data);
@@ -4963,12 +5236,12 @@ class RADashboardArea {
4963
5236
  this.raDashboardEventBus.publish(RAEvent.ShowInapplicableFilterMessage, false);
4964
5237
  }
4965
5238
  }
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" }] }); }
5239
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", 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 }); }
5240
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.5", 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
5241
  }
4969
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardArea, decorators: [{
5242
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RADashboardArea, decorators: [{
4970
5243
  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"] }]
5244
+ 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
5245
  }], ctorParameters: () => [{ type: RaDashboardService }, { type: i0.NgZone }, { type: i2$1.NgxUiLoaderService }, { type: i3.RATranslateService }, { type: i4.NotifierService }, { type: RADashboardResponsiveService }, { type: i3.RAPermissionService }], propDecorators: { userDashboardId: [{
4973
5246
  type: Input,
4974
5247
  args: ['user-dashboard-id']
@@ -4990,11 +5263,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
4990
5263
  }], appConfig: [{
4991
5264
  type: Input,
4992
5265
  args: ['app-config']
5266
+ }], dashboardInfo: [{
5267
+ type: Input,
5268
+ args: ['dashboard-info']
5269
+ }], templateConfig: [{
5270
+ type: Input
4993
5271
  }], hideDashboardBanner: [{
4994
5272
  type: Output
4995
5273
  }], gridWrapper: [{
4996
5274
  type: ViewChild,
4997
5275
  args: ['gridWrapper', { static: false }]
5276
+ }], divBottom: [{
5277
+ type: ViewChild,
5278
+ args: ['divBottom', { static: false }]
4998
5279
  }] } });
4999
5280
 
5000
5281
  const customNotifierOptions = {
@@ -5039,11 +5320,11 @@ const customNotifierOptions = {
5039
5320
  };
5040
5321
 
5041
5322
  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 }); }
5323
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GridsterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5324
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: GridsterModule, imports: [GridsterComponent, GridsterItemComponent], exports: [GridsterComponent, GridsterItemComponent] }); }
5325
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GridsterModule }); }
5045
5326
  }
5046
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule, decorators: [{
5327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: GridsterModule, decorators: [{
5047
5328
  type: NgModule,
5048
5329
  args: [{
5049
5330
  imports: [GridsterComponent, GridsterItemComponent],
@@ -5052,15 +5333,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
5052
5333
  }] });
5053
5334
 
5054
5335
  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,
5336
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DashboardFrameworkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5337
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: DashboardFrameworkModule, bootstrap: [RADashboardArea], declarations: [RADashboardArea,
5057
5338
  RAWidgetContainer,
5058
5339
  LockTooltip], imports: [BrowserModule,
5059
5340
  GridsterModule,
5060
5341
  HttpClientModule,
5061
5342
  NgxUiLoaderModule, i4.NotifierModule, RACommonModule,
5062
5343
  RACommonControlsModule], exports: [RADashboardArea] }); }
5063
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DashboardFrameworkModule, imports: [BrowserModule,
5344
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DashboardFrameworkModule, imports: [BrowserModule,
5064
5345
  GridsterModule,
5065
5346
  HttpClientModule,
5066
5347
  NgxUiLoaderModule,
@@ -5068,7 +5349,7 @@ class DashboardFrameworkModule {
5068
5349
  RACommonModule,
5069
5350
  RACommonControlsModule] }); }
5070
5351
  }
5071
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DashboardFrameworkModule, decorators: [{
5352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: DashboardFrameworkModule, decorators: [{
5072
5353
  type: NgModule,
5073
5354
  args: [{
5074
5355
  declarations: [
@@ -5124,10 +5405,10 @@ class RADashboardEventBus {
5124
5405
  return event.eventName == eventName && event.key == key && event.value == value;
5125
5406
  }), map(event => event.data));
5126
5407
  }
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' }); }
5408
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RADashboardEventBus, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5409
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RADashboardEventBus, providedIn: 'root' }); }
5129
5410
  }
5130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RADashboardEventBus, decorators: [{
5411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RADashboardEventBus, decorators: [{
5131
5412
  type: Injectable,
5132
5413
  args: [{
5133
5414
  providedIn: 'root'
@@ -5137,11 +5418,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImpor
5137
5418
  class RaBaseDashboardTemplate {
5138
5419
  constructor(ngZone) {
5139
5420
  this.ngZone = ngZone;
5140
- this.initialize = (eventBus, userDashboardId, appConfig) => {
5421
+ this.initialize = (eventBus, userDashboardId, appConfig, dashboardInfo, templateConfig) => {
5141
5422
  this.ngZone.run(() => {
5142
5423
  this.userDashboardId = userDashboardId;
5143
5424
  this.appConfig = appConfig;
5144
5425
  this.raDashboardEventBus = eventBus;
5426
+ this.dashboardInfo = dashboardInfo;
5427
+ this.templateConfig = templateConfig;
5145
5428
  });
5146
5429
  this.init();
5147
5430
  };
@@ -5150,10 +5433,10 @@ class RaBaseDashboardTemplate {
5150
5433
  var myEvent = new CustomEvent("event-template-initiated");
5151
5434
  document.body.dispatchEvent(myEvent);
5152
5435
  }
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 }); }
5436
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RaBaseDashboardTemplate, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
5437
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: RaBaseDashboardTemplate, inputs: { dashboardId: ["dashboard-id", "dashboardId"], globalFilter: ["global-filter", "globalFilter"], initialize: "initialize" }, ngImport: i0 }); }
5155
5438
  }
5156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaBaseDashboardTemplate, decorators: [{
5439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RaBaseDashboardTemplate, decorators: [{
5157
5440
  type: Directive
5158
5441
  }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { dashboardId: [{
5159
5442
  type: Input,
@@ -5187,10 +5470,10 @@ class RaBaseDashboardFilter {
5187
5470
  var myEvent = new CustomEvent("global-filter-initiated");
5188
5471
  document.body.dispatchEvent(myEvent);
5189
5472
  }
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 }); }
5473
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RaBaseDashboardFilter, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
5474
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.5", type: RaBaseDashboardFilter, inputs: { getAllFilterConfig: "getAllFilterConfig", setInapplicableFilterMsg: "setInapplicableFilterMsg", isValidEntry: "isValidEntry", clearAllData: "clearAllData", setAllFilterConfig: "setAllFilterConfig" }, ngImport: i0 }); }
5192
5475
  }
5193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: RaBaseDashboardFilter, decorators: [{
5476
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: RaBaseDashboardFilter, decorators: [{
5194
5477
  type: Directive
5195
5478
  }], propDecorators: { getAllFilterConfig: [{
5196
5479
  type: Input