@schneideress/dashboardframework 0.0.144 → 0.0.146

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.
@@ -618,6 +618,15 @@ class RADashboardArea {
618
618
  */
619
619
  ngOnInit() {
620
620
  this.initiateGridsterConfig();
621
+ this.widgetRearrangeSubject.subscribe((/**
622
+ * @param {?} event
623
+ * @return {?}
624
+ */
625
+ event => {
626
+ console.log('in subscribe subject & value is');
627
+ console.log(event);
628
+ this.rearrangeWidgets();
629
+ }));
621
630
  }
622
631
  /**
623
632
  * @param {?} changes
@@ -756,6 +765,8 @@ class RADashboardArea {
756
765
  this.widgetDeleteEvent.unsubscribe();
757
766
  if (this.widgetLibraryDoneClick)
758
767
  this.widgetLibraryDoneClick.unsubscribe();
768
+ if (this.widgetRearrangeSubject)
769
+ this.widgetRearrangeSubject.unsubscribe();
759
770
  }
760
771
  /**
761
772
  * To update position/dimention of all widgets in the area
@@ -853,7 +864,6 @@ class RADashboardArea {
853
864
  * @return {?}
854
865
  */
855
866
  deleteWidget(widgetInstanceId, isalertDisabled = false) {
856
- console.log("goCorona");
857
867
  /** @type {?} */
858
868
  let widget = this.widgetList.filter((/**
859
869
  * @param {?} item
@@ -868,12 +878,19 @@ class RADashboardArea {
868
878
  if (!isalertDisabled) {
869
879
  this.notifier.notify('success', " " + this.translateService.translate('Common.Widgettext') + " " + widget[0].widgetInfo.widgetTitle + " " + this.translateService.translate('Common.deletedSuccesfully') + " ");
870
880
  }
871
- this.options.compactType = 'compactLeft&Up';
872
- this.options.api.optionsChanged();
873
- this.options.compactType = 'none';
874
- this.options.api.optionsChanged();
875
881
  }
876
882
  }
883
+ /**
884
+ * To rearrange widgets position in the dashboard, compactLeft&Up,compactLeft,compactUp,etc
885
+ * @return {?}
886
+ */
887
+ rearrangeWidgets() {
888
+ console.log('in rearrange widgets methd');
889
+ this.options.compactType = 'compactUp&Left';
890
+ this.options.api.optionsChanged();
891
+ this.options.compactType = 'none';
892
+ this.options.api.optionsChanged();
893
+ }
877
894
  /**
878
895
  * To add widget instance to the database with the next available position and to make changes in
879
896
  * dashboard area.
@@ -1028,6 +1045,7 @@ RADashboardArea.propDecorators = {
1028
1045
  widgetHeight: [{ type: Input, args: ['widget-height',] }],
1029
1046
  widgetWidth: [{ type: Input, args: ['widget-width',] }],
1030
1047
  appConfig: [{ type: Input, args: ['app-config',] }],
1048
+ widgetRearrangeSubject: [{ type: Input }],
1031
1049
  gridWrapper: [{ type: ViewChild, args: ['gridWrapper', { static: false },] }],
1032
1050
  onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
1033
1051
  };
@@ -1082,6 +1100,8 @@ if (false) {
1082
1100
  /** @type {?} */
1083
1101
  RADashboardArea.prototype.appConfig;
1084
1102
  /** @type {?} */
1103
+ RADashboardArea.prototype.widgetRearrangeSubject;
1104
+ /** @type {?} */
1085
1105
  RADashboardArea.prototype.gridWrapper;
1086
1106
  /**
1087
1107
  * @type {?}
@@ -1242,6 +1262,23 @@ class RAWidgetContainer {
1242
1262
  this.widgetElement.widgetResized(size);
1243
1263
  }
1244
1264
  }
1265
+ /**
1266
+ * @param {?=} isHover
1267
+ * @return {?}
1268
+ */
1269
+ mouseHover(isHover = true) {
1270
+ if (this.widgetElement) {
1271
+ if (typeof this.widgetElement.hoverStatus === "function") {
1272
+ this.widgetElement.hoverStatus(isHover);
1273
+ }
1274
+ else {
1275
+ console.warn('widget framework outdated, please update to version 0.0.96');
1276
+ }
1277
+ }
1278
+ if (!isHover) {
1279
+ this.hideDropDown();
1280
+ }
1281
+ }
1245
1282
  /**
1246
1283
  * @return {?}
1247
1284
  */
@@ -1390,8 +1427,6 @@ class RAWidgetContainer {
1390
1427
  * @return {?}
1391
1428
  */
1392
1429
  (e) => {
1393
- console.log('in widget default state');
1394
- console.log(e);
1395
1430
  widgetContainer.setEmptyState(e.detail);
1396
1431
  }));
1397
1432
  /** @type {?} */
@@ -1451,16 +1486,11 @@ class RAWidgetContainer {
1451
1486
  * @return {?}
1452
1487
  */
1453
1488
  setNotConfiguredState(widgetInfo, forceEnable = false) {
1454
- console.log('in set no configured');
1455
- console.log(widgetInfo);
1456
- console.log(forceEnable);
1457
1489
  if ((widgetInfo.showDefaultState && (widgetInfo.widgetConfigInfo.config == "" || Object.keys(JSON.parse(widgetInfo.widgetConfigInfo.config)).length == 0)) || (forceEnable)) {
1458
- console.log('ininf');
1459
1490
  this.isWidgetStateApplicable = true;
1460
1491
  this.widgetEmptyState = WidgetViewState.emptyConfig.toString();
1461
1492
  }
1462
1493
  else {
1463
- console.log('in else');
1464
1494
  this.widgetEmptyState = '';
1465
1495
  this.isWidgetStateApplicable = false;
1466
1496
  }
@@ -1471,24 +1501,19 @@ class RAWidgetContainer {
1471
1501
  * @return {?}
1472
1502
  */
1473
1503
  setEmptyState(widgetState) {
1474
- console.log('in wc contanjiner widget state');
1475
- console.log(widgetState);
1476
1504
  this.widgetEmptyState = widgetState;
1477
1505
  if (widgetState != WidgetViewState.normal) {
1478
1506
  this.isWidgetStateApplicable = true;
1479
1507
  this.isDownloadIconVisible = false;
1480
1508
  }
1481
1509
  else {
1482
- console.log('in else case');
1483
1510
  this.isWidgetStateApplicable = false;
1484
1511
  }
1485
1512
  switch (widgetState) {
1486
1513
  case WidgetViewState.emptyConfig:
1487
- console.log('in case emptyconfig');
1488
1514
  this.setNotConfiguredState(this.data.widgetInfo, true);
1489
1515
  break;
1490
1516
  case WidgetViewState.emptyData:
1491
- console.log('in case empty');
1492
1517
  break;
1493
1518
  case WidgetViewState.error:
1494
1519
  break;
@@ -1679,7 +1704,7 @@ class RAWidgetContainer {
1679
1704
  RAWidgetContainer.decorators = [
1680
1705
  { type: Component, args: [{
1681
1706
  selector: 'ra-widget-container',
1682
- template: "<div class=\"wc-wrapper\" (mouseleave)=\"hideDropDown()\"\r\n [ngStyle]=\"{'margin-left': noPadding?'0px':'15px','margin-right': noPadding?'0px':'15px'}\">\r\n <div class=\"wcheader widget-move\" [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-md-10 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\" (mouseover)=\"mouseOver($event)\"\r\n #searchInput>{{data.widgetInfo.widgetTitle}}</div>\r\n </ra-tooltip>\r\n </div>\r\n\r\n\r\n <div class=\"col-md-2\" style=\"cursor:default;padding-right: 0px;\">\r\n <div class=\"float-right\" style=\"display: flex;\">\r\n\r\n <div class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!lockDetails && !lockTemplateInfo\">\r\n <i class=\"fal fa-lock lock\"></i>\r\n <div class=\"lock-dropdown-content light widget-config-item\">\r\n <div *ngIf=\"lockDetails && !lockTemplateInfo\">\r\n <label style=\"color: #D9F0FA;\">\r\n {{'Common.lockedfields'|translate}}\r\n </label>\r\n <div style=\"color: white;\">\r\n <label class=\"bold\" style=\"margin-bottom: 0px;width: 100%;\" *ngFor=\"let item of lockDetails\">\r\n {{item}}\r\n </label>\r\n </div>\r\n <hr>\r\n <div style=\"color: #D9F0FA;\">\r\n <label>{{'Common.lockedfieldseditinfo'|translate}}</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!lockDetails && lockTemplateInfo\">\r\n <ng-container *ngTemplateOutlet=\"lockTemplateInfo\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"dropdown\" style=\"width:10px;\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown()\" #widgetDropdown class=\"fal fa-ellipsis-v\"></i>\r\n </div>\r\n <div class=\"download-content dropdown-content widget-config-item\"\r\n [ngClass]=\"{'dropdown-click': dropDownShown}\" style=\"z-index: 1002;\">\r\n\r\n <div style=\"color: #9FA0A4;font-size: 12px;padding-top: 8px;padding-left: 12px;\">\r\n {{'Common.settings'|translate}}</div>\r\n\r\n <a style=\"padding-top: 10px;\" (click)=\"editWidget()\">\r\n <ra-tooltip [value]=\"editToolTipValue\" [width]=\"editToolTipWidth\">\r\n <i class=\"fal fa-edit\"></i>\r\n <span style=\"padding-left: 6px;\">{{editText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n <a (click)=\"copyWidget()\">\r\n <ra-tooltip [value]=\"copyToolTipValue\" [width]=\"copyToolTipWidth\">\r\n <i class=\"fal fa-copy\"></i>\r\n <span style=\"padding-left: 10px;\">{{copyText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n <a (click)=\"moveWidget()\">\r\n <ra-tooltip [value]=\"moveToolTipValue\" [width]=\"moveToolTipWidth\">\r\n <i class=\"fal fa-arrows-alt\"></i>\r\n <span style=\"padding-left: 9px;\">{{moveText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n <a *ngIf=\"detailPageUrl\" (click)=\"visitPage()\"\r\n style=\"max-height: 30px;align-items: center;align-content: center; display: flex;\">\r\n <i style=\"padding-left: 4px;font-size: 27px !important;\" class=\"fal fa-angle-right\"></i>\r\n <span style=\"padding-left: 11px;margin-top: 2px;\">{{'Common.visitpage'|translate}}</span>\r\n </a>\r\n <hr class=\"hr\" style=\"padding-bottom: 9px;\">\r\n <span style=\"color: #9FA0A4;font-size: 12px;\"\r\n *ngIf=\"isDownloadIconVisible\">{{'Common.downloads'|translate}}</span>\r\n <div *ngIf=\"isChartDownloadVisible\" style=\"padding-top: 10px;\" class=\"chartDownload\">\r\n <a (click)=\"downloadIconClicked('PNG')\">\r\n <i class=\"fal fa-file-image\"></i>\r\n <span>{{'Common.png'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('JPEG')\">\r\n <i class=\"fal fa-file-image\"></i>\r\n <span>{{'Common.jpeg'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('PDF')\">\r\n <i class=\"fal fa-file-pdf\"></i>\r\n <span>{{'Common.pdf'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('SVG')\">\r\n <i class=\"fal fa-file-alt\"></i>\r\n <span>{{'Common.svg'|translate}}</span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"isGridDownloadVisible\" class=\"gridDownload\">\r\n <a (click)=\"downloadIconClicked('CSV')\">\r\n <ra-tooltip [value]=\"excelToolTipValue\" [width]=\"excelToolTipWidth\">\r\n <i class=\"fal fa-download\"></i>\r\n <span>{{excelText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n </div>\r\n <hr *ngIf=\"isDownloadIconVisible\" class=\"hr\">\r\n <a (click)=\"deleteWidget()\">\r\n <ra-tooltip [value]=\"deleteToolTipValue\" [width]=\"deleteToolTipWidth\">\r\n <i class=\"fal fa-times\" style=\"padding-left: 3px;color: red;\"></i>\r\n <span>{{deleteText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\" [ngStyle]=\"{'bottom': noPadding?'0px':'15px'}\">\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 <div class=\"contentarea\" *ngIf=\"widgetEmptyState == widgetViewState.emptyConfig\">\r\n <div class=\"textarea light\">\r\n <span class=\"icon empty-config\"><i class=\"fal fa-edit\" style=\"font-size: 16px;\"></i></span>\r\n <span class=\"text\">{{'Common.configureinfo'|translate}}</span>\r\n </div>\r\n <div class=\"button\" (click)=\"editWidget()\">\r\n <div class=\"configuretext\">\r\n {{'Common.configurewidget'|translate}}\r\n </div>\r\n <!-- <span class=\"editIcon\"><i class=\"fal fa-edit\"></i></span><span class=\"text\">Configure Widget</span> -->\r\n </div>\r\n </div>\r\n <div class=\"contentarea emptyDataView\"\r\n *ngIf=\"isWidgetStateApplicable && widgetEmptyState == widgetViewState.emptyData\">\r\n <div class=\"textarea light\">\r\n <span class=\"icon empty-data\"><i class=\"fal fa-empty-set\"></i></span>\r\n <span class=\"text\">{{'Common.widgetemptydatainfo'|translate}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contentarea errorView\" *ngIf=\"isWidgetStateApplicable && widgetEmptyState == widgetViewState.error\">\r\n <div class=\"textarea light\">\r\n <span class=\"icon error-view\"><i class=\"fal fa-octagon\"></i></span>\r\n <span class=\"text\">{{'Common.widgeterrorinfo'|translate}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1707
+ template: "<div 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\" [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-md-10 float-left title-label\">\r\n <ra-tooltip [value]=\"toolTipValue\" [width]=\"toolTipWidth\">\r\n <div style=\"text-overflow: ellipsis;white-space: nowrap;overflow: hidden;\" (mouseover)=\"mouseOver($event)\"\r\n #searchInput>{{data.widgetInfo.widgetTitle}}</div>\r\n </ra-tooltip>\r\n </div>\r\n\r\n\r\n <div class=\"col-md-2\" style=\"cursor:default;padding-right: 0px;\">\r\n <div class=\"float-right\" style=\"display: flex;\">\r\n\r\n <div class=\"title-bar-lock-icon lock-dropdown\" [hidden]=\"!lockDetails && !lockTemplateInfo\">\r\n <i class=\"fal fa-lock lock\"></i>\r\n <div class=\"lock-dropdown-content light widget-config-item\">\r\n <div *ngIf=\"lockDetails && !lockTemplateInfo\">\r\n <label style=\"color: #D9F0FA;\">\r\n {{'Common.lockedfields'|translate}}\r\n </label>\r\n <div style=\"color: white;\">\r\n <label class=\"bold\" style=\"margin-bottom: 0px;width: 100%;\" *ngFor=\"let item of lockDetails\">\r\n {{item}}\r\n </label>\r\n </div>\r\n <hr>\r\n <div style=\"color: #D9F0FA;\">\r\n <label>{{'Common.lockedfieldseditinfo'|translate}}</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!lockDetails && lockTemplateInfo\">\r\n <ng-container *ngTemplateOutlet=\"lockTemplateInfo\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"dropdown\" style=\"width:10px;\">\r\n <div class=\"dropbtn title-bar-icon\">\r\n <i (click)=\"showDropDown()\" #widgetDropdown class=\"fal fa-ellipsis-v\"></i>\r\n </div>\r\n <div class=\"download-content dropdown-content widget-config-item\"\r\n [ngClass]=\"{'dropdown-click': dropDownShown}\" style=\"z-index: 1002;\">\r\n\r\n <div style=\"color: #9FA0A4;font-size: 12px;padding-top: 8px;padding-left: 12px;\">\r\n {{'Common.settings'|translate}}</div>\r\n\r\n <a style=\"padding-top: 10px;\" (click)=\"editWidget()\">\r\n <ra-tooltip [value]=\"editToolTipValue\" [width]=\"editToolTipWidth\">\r\n <i class=\"fal fa-edit\"></i>\r\n <span style=\"padding-left: 6px;\">{{editText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n <a (click)=\"copyWidget()\">\r\n <ra-tooltip [value]=\"copyToolTipValue\" [width]=\"copyToolTipWidth\">\r\n <i class=\"fal fa-copy\"></i>\r\n <span style=\"padding-left: 10px;\">{{copyText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n <a (click)=\"moveWidget()\">\r\n <ra-tooltip [value]=\"moveToolTipValue\" [width]=\"moveToolTipWidth\">\r\n <i class=\"fal fa-arrows-alt\"></i>\r\n <span style=\"padding-left: 9px;\">{{moveText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n <a *ngIf=\"detailPageUrl\" (click)=\"visitPage()\"\r\n style=\"max-height: 30px;align-items: center;align-content: center; display: flex;\">\r\n <i style=\"padding-left: 4px;font-size: 27px !important;\" class=\"fal fa-angle-right\"></i>\r\n <span style=\"padding-left: 11px;margin-top: 2px;\">{{'Common.visitpage'|translate}}</span>\r\n </a>\r\n <hr class=\"hr\" style=\"padding-bottom: 9px;\">\r\n <span style=\"color: #9FA0A4;font-size: 12px;\"\r\n *ngIf=\"isDownloadIconVisible\">{{'Common.downloads'|translate}}</span>\r\n <div *ngIf=\"isChartDownloadVisible\" style=\"padding-top: 10px;\" class=\"chartDownload\">\r\n <a (click)=\"downloadIconClicked('PNG')\">\r\n <i class=\"fal fa-file-image\"></i>\r\n <span>{{'Common.png'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('JPEG')\">\r\n <i class=\"fal fa-file-image\"></i>\r\n <span>{{'Common.jpeg'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('PDF')\">\r\n <i class=\"fal fa-file-pdf\"></i>\r\n <span>{{'Common.pdf'|translate}}</span>\r\n </a>\r\n <a (click)=\"downloadIconClicked('SVG')\">\r\n <i class=\"fal fa-file-alt\"></i>\r\n <span>{{'Common.svg'|translate}}</span>\r\n </a>\r\n </div>\r\n <div *ngIf=\"isGridDownloadVisible\" class=\"gridDownload\">\r\n <a (click)=\"downloadIconClicked('CSV')\">\r\n <ra-tooltip [value]=\"excelToolTipValue\" [width]=\"excelToolTipWidth\">\r\n <i class=\"fal fa-download\"></i>\r\n <span>{{excelText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n </div>\r\n <hr *ngIf=\"isDownloadIconVisible\" class=\"hr\">\r\n <a (click)=\"deleteWidget()\">\r\n <ra-tooltip [value]=\"deleteToolTipValue\" [width]=\"deleteToolTipWidth\">\r\n <i class=\"fal fa-times\" style=\"padding-left: 3px;color: red;\"></i>\r\n <span>{{deleteText}}</span>\r\n </ra-tooltip>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"wcBody\" [ngStyle]=\"{'bottom': noPadding?'0px':'15px'}\">\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 <div class=\"contentarea\" *ngIf=\"widgetEmptyState == widgetViewState.emptyConfig\">\r\n <div class=\"textarea light\">\r\n <span class=\"icon empty-config\"><i class=\"fal fa-edit\" style=\"font-size: 16px;\"></i></span>\r\n <span class=\"text\">{{'Common.configureinfo'|translate}}</span>\r\n </div>\r\n <div class=\"button\" (click)=\"editWidget()\">\r\n <div class=\"configuretext\">\r\n {{'Common.configurewidget'|translate}}\r\n </div>\r\n <!-- <span class=\"editIcon\"><i class=\"fal fa-edit\"></i></span><span class=\"text\">Configure Widget</span> -->\r\n </div>\r\n </div>\r\n <div class=\"contentarea emptyDataView\"\r\n *ngIf=\"isWidgetStateApplicable && widgetEmptyState == widgetViewState.emptyData\">\r\n <div class=\"textarea light\">\r\n <span class=\"icon empty-data\"><i class=\"fal fa-empty-set\"></i></span>\r\n <span class=\"text\">{{'Common.widgetemptydatainfo'|translate}}</span>\r\n </div>\r\n </div>\r\n <div class=\"contentarea errorView\" *ngIf=\"isWidgetStateApplicable && widgetEmptyState == widgetViewState.error\">\r\n <div class=\"textarea light\">\r\n <span class=\"icon error-view\"><i class=\"fal fa-octagon\"></i></span>\r\n <span class=\"text\">{{'Common.widgeterrorinfo'|translate}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div>\r\n </div>\r\n </div>\r\n</div>\r\n",
1683
1708
  styles: [".sp_icon{float:left;margin:0 15% 0 0}.dropbtn{color:#42b4e6;text-align:right;height:100%}.dropbtn i{cursor:pointer;width:100%;height:100%}.dropdown{visibility:hidden;opacity:0;transition:visibility,opacity .5s linear;position:relative;width:100%}@media screen and (max-width:400px){.dropdown{visibility:visible;opacity:1}}.dropdown hr{margin:0!important}.dropdown-content{display:none;position:absolute;right:0;background-color:#fff;min-width:100px;box-shadow:0 8px 16px 8px rgba(0,0,0,.2);z-index:2;font-size:12px;font-weight:400;width:122px}.dropdown-content a{color:#000;padding:5px 16px;text-decoration:none;display:block;cursor:pointer}.wc{height:100%}.defaultConfig{height:100%;display:flex;align-items:center}.defaultConfig .button{min-height:34px;font-size:13px;width:100%;min-height:34px;color:#fff;background:no-repeat padding-box #3dcd58;display:table;margin:9px 0 0;cursor:pointer;text-align:center;float:left}.defaultConfig .contentarea{width:80%;margin:0 auto;float:left;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.defaultConfig .textarea{width:100%;float:left}.defaultConfig .textarea .icon{width:52px;height:100%;float:left}.defaultConfig .textarea .empty-config{color:#32ad3c}.defaultConfig .textarea .error-view{color:#dc0a0a}.defaultConfig .textarea .empty-data{color:#5ab5e6}.defaultConfig .textarea .text{width:calc(100% - 52px);min-height:60px;float:left;font-size:14px;text-align:left}.defaultConfig .textarea .icon i{font-size:40px!important}.configuretext{display:table-cell;vertical-align:middle;height:34px}.dropdown-content a:hover{background-color:#f1f1f1}.lockInvisible{margin-right:-17px}.dropdown-click{display:block!important;-webkit-animation:.3s ease-out slide-down;animation:.3s ease-out slide-down}.download-icon{cursor:pointer}.dropdown:hover .dropdown-content{color:#fff}.title-bar-icon{color:#42b4e6}.title-bar-lock-icon{margin:0 3px}.hr{border:0;border-top:1px solid rgba(0,0,0,.1)}.settingstyle{color:#9fa0a4;font-size:12px}@-webkit-keyframes slide-down{0%{opacity:0;transform:translateY(-20%)}100%{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-20%)}100%{opacity:1;transform:translateY(0)}}.widget-config-item i{font-size:17px;color:#42b4e6}.widget-config-item span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}.lock{color:#42b4e6}.locked{color:#42b4e6;background:#fff}.partiallocked{color:#a0d9f2}.unlocked{display:none}.download{visibility:hidden;opacity:0;transition:visibility,opacity .5s linear;position:relative}.wc-wrapper:hover .download{visibility:visible;opacity:1}.download-content a{color:#000;padding:5px 16px;text-decoration:none;display:block;cursor:pointer}.download-content a:hover{background-color:#f1f1f1}.download-content a i{font-size:17px;color:#42b4e6}.download-content a span{font-size:12px;font:inherit;padding-left:12px;color:#42b4e6}.title-label{width:96%;padding-left:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lock-dropdown{transition:visibility,opacity .5s linear;position:relative;display:inline-block;margin:0 6px 0 10px}.lock-dropdown-content{display:none;margin-top:8px;position:absolute;right:0;top:79%;box-shadow:0 8px 16px 8px rgba(0,0,0,.2);z-index:899;font-size:12px;min-width:220px!important;min-height:112px;background-color:#219bfd;opacity:.9;padding:15px;color:#fff}.lock-dropdown-content hr{border-bottom:1px solid #fff}.lock-dropdown:hover .lock-dropdown-content{display:block!important;-webkit-animation:.3s ease-out slide-down;animation:.3s ease-out slide-down}"]
1684
1709
  }] }
1685
1710
  ];
@@ -6412,6 +6437,7 @@ class RaBaseDashboardTemplate {
6412
6437
  */
6413
6438
  constructor(ngZone) {
6414
6439
  this.ngZone = ngZone;
6440
+ this.widgetRearrangeSubject = new Subject();
6415
6441
  this.initialize = (/**
6416
6442
  * @param {?} eventBus
6417
6443
  * @param {?} userDashboardId
@@ -6429,6 +6455,17 @@ class RaBaseDashboardTemplate {
6429
6455
  }));
6430
6456
  this.init();
6431
6457
  });
6458
+ this.rearrangeWidgets = (/**
6459
+ * @return {?}
6460
+ */
6461
+ () => {
6462
+ this.ngZone.run((/**
6463
+ * @return {?}
6464
+ */
6465
+ () => {
6466
+ this.widgetRearrangeSubject.next(true);
6467
+ }));
6468
+ });
6432
6469
  }
6433
6470
  /**
6434
6471
  * @return {?}
@@ -6442,7 +6479,8 @@ class RaBaseDashboardTemplate {
6442
6479
  RaBaseDashboardTemplate.propDecorators = {
6443
6480
  dashboardId: [{ type: Input, args: ['dashboard-id',] }],
6444
6481
  globalFilter: [{ type: Input, args: ['global-filter',] }],
6445
- initialize: [{ type: Input }]
6482
+ initialize: [{ type: Input }],
6483
+ rearrangeWidgets: [{ type: Input }]
6446
6484
  };
6447
6485
  if (false) {
6448
6486
  /** @type {?} */
@@ -6452,11 +6490,15 @@ if (false) {
6452
6490
  /** @type {?} */
6453
6491
  RaBaseDashboardTemplate.prototype.appConfig;
6454
6492
  /** @type {?} */
6493
+ RaBaseDashboardTemplate.prototype.widgetRearrangeSubject;
6494
+ /** @type {?} */
6455
6495
  RaBaseDashboardTemplate.prototype.dashboardId;
6456
6496
  /** @type {?} */
6457
6497
  RaBaseDashboardTemplate.prototype.globalFilter;
6458
6498
  /** @type {?} */
6459
6499
  RaBaseDashboardTemplate.prototype.initialize;
6500
+ /** @type {?} */
6501
+ RaBaseDashboardTemplate.prototype.rearrangeWidgets;
6460
6502
  /**
6461
6503
  * @type {?}
6462
6504
  * @private