@schneideress/dashboardframework 17.0.22 → 17.0.24

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, ViewContainerRef, ViewChild, NgModule, Directive } from '@angular/core';
2
+ import { Injectable, Component, ViewEncapsulation, Input, EventEmitter, ElementRef, Renderer2, ChangeDetectorRef, NgZone, Inject, Output, HostBinding, ViewContainerRef, ViewChild, HostListener, 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';
@@ -155,6 +155,7 @@ var RAEvent;
155
155
  /** When user change the curated filter(eg:data streams), system will create/delete widgets */
156
156
  RAEvent["CuratedFilterChange"] = "CuratedFilterChange";
157
157
  RAEvent["GlobalFilterClick"] = "GlobalFilterClick";
158
+ RAEvent["LayoutChange"] = "LayoutChange";
158
159
  })(RAEvent || (RAEvent = {}));
159
160
  var RAEventKey;
160
161
  (function (RAEventKey) {
@@ -3912,7 +3913,7 @@ class RAWidgetContainer {
3912
3913
  }
3913
3914
  if (changes['canLoadData'] && (changes['canLoadData'].currentValue != changes['canLoadData'].previousValue)) {
3914
3915
  if (this.canLoadData)
3915
- this.refreshWidget(this.data.widgetInfo);
3916
+ this.loadWidget(this.data.widgetInfo);
3916
3917
  }
3917
3918
  }
3918
3919
  invokeWidgetResizedEvent() {
@@ -3943,7 +3944,7 @@ class RAWidgetContainer {
3943
3944
  }
3944
3945
  ngAfterViewInit() {
3945
3946
  setTimeout(() => {
3946
- this.loadWidget(this.data.widgetInfo);
3947
+ this.widgetLoaded.emit(this.wcWrapper.nativeElement);
3947
3948
  });
3948
3949
  document.addEventListener("scroll", () => {
3949
3950
  this.removeMenu();
@@ -4169,8 +4170,7 @@ class RAWidgetContainer {
4169
4170
  widgetConfigFilter.widgetInfo.widgetName = widgetInfo.widgetName;
4170
4171
  widgetConfigFilter.globalFilter = me.globalFilter;
4171
4172
  widgetConfigFilter.dashboardInfo = me.dashboardInfo;
4172
- //this.widgetElement.loadContent(widgetConfigFilter);
4173
- me.widgetLoaded.emit(me.wcWrapper.nativeElement);
4173
+ me.widgetElement.loadContent(widgetConfigFilter);
4174
4174
  await me.setLock(widgetConfigFilter.config);
4175
4175
  await me.setDownloadIcon();
4176
4176
  });
@@ -4289,8 +4289,7 @@ class RAWidgetContainer {
4289
4289
  widgetConfigFilter.widgetInfo.widgetName = widgetInfo.widgetName;
4290
4290
  widgetConfigFilter.globalFilter = me.globalFilter;
4291
4291
  widgetConfigFilter.dashboardInfo = me.dashboardInfo;
4292
- //me.widgetElement.loadContent(widgetConfigFilter);
4293
- me.widgetLoaded.emit(me.wcWrapper.nativeElement);
4292
+ me.widgetElement.loadContent(widgetConfigFilter);
4294
4293
  await me.setLock(widgetConfigFilter.config);
4295
4294
  await me.setDownloadIcon();
4296
4295
  });
@@ -4760,20 +4759,19 @@ class RADashboardArea {
4760
4759
  this.isWidgetMgmnt = false;
4761
4760
  this.initialWidgetCount = 10;
4762
4761
  this.currentLoadingCount = 0;
4763
- this.loading = false;
4764
- this.widgetsLoaded = false;
4765
4762
  this.widgetHeight = 2;
4766
4763
  this.widgetWidth = 4;
4767
4764
  this.isIndicatorDashboard = false;
4768
4765
  this.hideDashboardBanner = new EventEmitter();
4769
- this.widgets = [];
4766
+ }
4767
+ scroll() {
4768
+ if (this.scrollTrigger)
4769
+ clearTimeout(this.scrollTrigger);
4770
+ this.scrollTrigger = setTimeout(() => {
4771
+ this.loadData();
4772
+ }, 500);
4770
4773
  }
4771
4774
  ngOnInit() {
4772
- window.addEventListener('scroll', () => {
4773
- if (this.widgets.length > 0) {
4774
- this.loadData();
4775
- }
4776
- });
4777
4775
  this.isWidgetMgmnt = this.permissionService.hasPermission('ra.widgetmanagement');
4778
4776
  this.initiateGridsterConfig();
4779
4777
  this.setEmptyDashboardConfig();
@@ -4787,9 +4785,7 @@ class RADashboardArea {
4787
4785
  this.options.api.optionsChanged();
4788
4786
  if (this.userWidgets) {
4789
4787
  let widgets = this.mapObjectListToGridsterItemList(this.userWidgets);
4790
- for (let i = 0; i < widgets.length; i++) {
4791
- this.widgets.push({ 'widget': widgets[i] });
4792
- }
4788
+ this.currentLoadingCount = 0;
4793
4789
  this.widgetList = widgets;
4794
4790
  setTimeout(() => {
4795
4791
  this.setAreaHeight();
@@ -4814,6 +4810,11 @@ class RADashboardArea {
4814
4810
  this.bulkActionData = JSON.parse(JSON.stringify(data)); // To create a new reference;
4815
4811
  });
4816
4812
  });
4813
+ setTimeout(() => {
4814
+ this.calculateLayout = this.raDashboardEventBus.subscribe(RAEvent.LayoutChange).subscribe(() => {
4815
+ this.options.api.optionsChanged();
4816
+ });
4817
+ });
4817
4818
  }
4818
4819
  ngOnChanges(changes) {
4819
4820
  this.isWidgetMgmnt = this.permissionService.hasPermission('ra.widgetmanagement');
@@ -4860,30 +4861,46 @@ class RADashboardArea {
4860
4861
  }
4861
4862
  }
4862
4863
  widgetLoaded(widgetElement, widget) {
4863
- let items = this.widgets.filter((item) => item.widget.widgetInfo.widgetInstanceId == widget.widgetInfo.widgetInstanceId);
4864
+ widget.widgetElement = widgetElement;
4865
+ let items = this.widgetList.filter((item) => item.widgetInfo.widgetInstanceId == widget.widgetInfo.widgetInstanceId);
4864
4866
  if (items.length > 0) {
4865
- items[0].widgetElement = widgetElement;
4866
4867
  this.loadData(items[0]);
4867
4868
  }
4868
4869
  }
4869
4870
  loadData(item) {
4870
- if (this.initialWidgetCount > this.currentLoadingCount && this.widgets.length > 0) {
4871
- if (!item)
4872
- item = this.widgets[0];
4873
- if (this.elementInViewport(item.widgetElement) || this.widgetList.filter((w => w.canLoadData)).length <= this.initialWidgetCount) {
4874
- this.currentLoadingCount++;
4875
- item.widget.canLoadData = true;
4876
- this.widgets.splice(this.widgets.indexOf(item), 1);
4871
+ let items = [];
4872
+ let totalLoadedCount = this.widgetList.filter((w => w.canLoadData)).length;
4873
+ if (!item)
4874
+ items = this.widgetList.filter((w => !w.canLoadData));
4875
+ else
4876
+ items.push(item);
4877
+ if (items.length > 0) {
4878
+ if (this.initialWidgetCount > this.currentLoadingCount) {
4879
+ for (let i = 0; i < items.length; i++) {
4880
+ if (this.isElementLoaded(items[i].widgetElement) ||
4881
+ (totalLoadedCount <= this.initialWidgetCount)) {
4882
+ this.currentLoadingCount++;
4883
+ items[i].canLoadData = true;
4884
+ totalLoadedCount = this.widgetList.filter((w => w.canLoadData)).length;
4885
+ }
4886
+ }
4877
4887
  }
4878
4888
  }
4879
4889
  }
4880
4890
  dataLoaded(widgetInfo) {
4881
4891
  this.currentLoadingCount--;
4882
- this.loadData();
4892
+ // this.loadData()
4883
4893
  }
4884
- elementInViewport(el) {
4885
- let rect = el.getBoundingClientRect();
4886
- return rect && rect.top < window.innerHeight;
4894
+ isElementLoaded(el) {
4895
+ if (el) {
4896
+ let rect = el.getBoundingClientRect();
4897
+ return rect && rect.top < window.innerHeight;
4898
+ }
4899
+ }
4900
+ loadWidgetWrappers(isInitialLoad = true) {
4901
+ let widgets = this.mapObjectListToGridsterItemList(this.userWidgets);
4902
+ this.widgetList.push(...widgets);
4903
+ this.setAreaHeight();
4887
4904
  }
4888
4905
  /** To initiate eventbus subsctiptions */
4889
4906
  inititateEventBusSubscritions() {
@@ -4959,6 +4976,8 @@ class RADashboardArea {
4959
4976
  this.curatedFilterChange.unsubscribe();
4960
4977
  if (this.bulkActionClick)
4961
4978
  this.bulkActionClick.unsubscribe();
4979
+ if (this.calculateLayout)
4980
+ this.calculateLayout.unsubscribe();
4962
4981
  }
4963
4982
  /**To update position/dimention of all widgets in the area */
4964
4983
  updateWidgets() {
@@ -4999,7 +5018,6 @@ class RADashboardArea {
4999
5018
  window.scrollTo(0, 0);
5000
5019
  if (location.href.indexOf('/kiosk/') > -1)
5001
5020
  this.initialWidgetCount = 1000;
5002
- this.loading = false;
5003
5021
  let widgetInfo = {
5004
5022
  dashboardId: userDashboarId.toString(),
5005
5023
  dashboardAreaKey: areaKey,
@@ -5008,7 +5026,6 @@ class RADashboardArea {
5008
5026
  this.widgetList = [];
5009
5027
  this.dashboardService.getWidgetsByDashboardArea(widgetInfo, this.appConfig).subscribe(widgets => {
5010
5028
  this.userWidgets = widgets;
5011
- this.widgetsLoaded = true;
5012
5029
  this.PAMWidgets = [];
5013
5030
  widgets.forEach((element) => {
5014
5031
  var settings = undefined;
@@ -5030,21 +5047,6 @@ class RADashboardArea {
5030
5047
  }
5031
5048
  });
5032
5049
  }
5033
- loadWidgetWrappers() {
5034
- if (!this.loading) {
5035
- this.loading = true;
5036
- let widgets = this.mapObjectListToGridsterItemList(this.userWidgets);
5037
- this.widgets = [];
5038
- for (let i = 0; i < widgets.length; i++) {
5039
- this.widgets.push({ 'widget': widgets[i] });
5040
- }
5041
- this.widgetList.push(...widgets);
5042
- this.setAreaHeight();
5043
- setTimeout(() => {
5044
- this.loading = false;
5045
- });
5046
- }
5047
- }
5048
5050
  /** To set Area(Gridster) height dynamically as widgets are added/removed */
5049
5051
  setAreaHeight() {
5050
5052
  setTimeout(() => {
@@ -5115,7 +5117,6 @@ class RADashboardArea {
5115
5117
  }
5116
5118
  /**To rearrange widgets position in the dashboard, compactLeft&Up,compactLeft,compactUp,etc*/
5117
5119
  rearrangeWidgets() {
5118
- this.loading = false;
5119
5120
  for (let i = 0; i < this.userWidgets.length; i++) {
5120
5121
  this.userWidgets[i].position_x = 0;
5121
5122
  this.userWidgets[i].position_y = 0;
@@ -5155,7 +5156,6 @@ class RADashboardArea {
5155
5156
  this.dashboardService.addWidget(data, this.appConfig).subscribe(widget => {
5156
5157
  this.userWidgets.push(widget);
5157
5158
  let gridsterItem = this.responsiveService.getGridsterItem(widget);
5158
- this.widgets.push({ 'widget': gridsterItem });
5159
5159
  this.widgetList.push(gridsterItem);
5160
5160
  this.setAreaHeight();
5161
5161
  if (this.options.api) {
@@ -5208,7 +5208,6 @@ class RADashboardArea {
5208
5208
  }
5209
5209
  this.userWidgets.push(data);
5210
5210
  let gridsterItem = this.responsiveService.getGridsterItem(data);
5211
- this.widgets.push({ 'widget': gridsterItem });
5212
5211
  this.widgetList.push(gridsterItem);
5213
5212
  this.setAreaHeight();
5214
5213
  if (data.settings && data.settings.isPAMWidget) {
@@ -5258,11 +5257,11 @@ class RADashboardArea {
5258
5257
  }
5259
5258
  }
5260
5259
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RADashboardArea, deps: [{ token: RaDashboardService }, { token: i0.NgZone }, { token: i2$1.NgxUiLoaderService }, { token: i3.RATranslateService }, { token: i4.NotifierService }, { token: i0.ChangeDetectorRef }, { token: RADashboardResponsiveService }, { token: i3.RAPermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
5261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", 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"], isIndicatorDashboard: "isIndicatorDashboard", templateConfig: "templateConfig" }, outputs: { hideDashboardBanner: "hideDashboardBanner" }, viewQueries: [{ propertyName: "gridWrapper", first: true, predicate: ["gridWrapper"], 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($event, 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", 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"] }] }); }
5260
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", 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"], isIndicatorDashboard: "isIndicatorDashboard", templateConfig: "templateConfig" }, outputs: { hideDashboardBanner: "hideDashboardBanner" }, host: { listeners: { "document:scroll": "scroll()" } }, viewQueries: [{ propertyName: "gridWrapper", first: true, predicate: ["gridWrapper"], 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($event, 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", styles: ["gridster{width:inherit;resize:height;display:flex;background-color:#fff;overflow-y:hidden!important;flex-direction:column}.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"] }] }); }
5262
5261
  }
5263
5262
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: RADashboardArea, decorators: [{
5264
5263
  type: Component,
5265
- 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($event, 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", 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"] }]
5264
+ 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($event, 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", styles: ["gridster{width:inherit;resize:height;display:flex;background-color:#fff;overflow-y:hidden!important;flex-direction:column}.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"] }]
5266
5265
  }], ctorParameters: () => [{ type: RaDashboardService }, { type: i0.NgZone }, { type: i2$1.NgxUiLoaderService }, { type: i3.RATranslateService }, { type: i4.NotifierService }, { type: i0.ChangeDetectorRef }, { type: RADashboardResponsiveService }, { type: i3.RAPermissionService }], propDecorators: { userDashboardId: [{
5267
5266
  type: Input,
5268
5267
  args: ['user-dashboard-id']
@@ -5297,6 +5296,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
5297
5296
  }], gridWrapper: [{
5298
5297
  type: ViewChild,
5299
5298
  args: ['gridWrapper', { static: false }]
5299
+ }], scroll: [{
5300
+ type: HostListener,
5301
+ args: ['document:scroll']
5300
5302
  }] } });
5301
5303
 
5302
5304
  const customNotifierOptions = {