@skyux/tiles 5.5.0-beta.0 → 5.6.1

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.
Files changed (27) hide show
  1. package/bundles/skyux-tiles.umd.js +62 -62
  2. package/documentation.json +41 -41
  3. package/esm2015/lib/modules/shared/sky-tiles-resources.module.js +1 -1
  4. package/esm2015/lib/modules/shared/sky-tiles-resources.module.js.map +1 -1
  5. package/esm2015/lib/modules/tiles/tile/tile.component.js +1 -1
  6. package/esm2015/lib/modules/tiles/tile/tile.component.js.map +1 -1
  7. package/esm2015/lib/modules/tiles/tile/tile.module.js +3 -3
  8. package/esm2015/lib/modules/tiles/tile/tile.module.js.map +1 -1
  9. package/esm2015/lib/modules/tiles/tile-content/tile-content.module.js +1 -1
  10. package/esm2015/lib/modules/tiles/tile-content/tile-content.module.js.map +1 -1
  11. package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.component.js +4 -4
  12. package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.component.js.map +1 -1
  13. package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.module.js +3 -3
  14. package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.module.js.map +1 -1
  15. package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.service.js +48 -48
  16. package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.service.js.map +1 -1
  17. package/esm2015/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.js +1 -1
  18. package/esm2015/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.js.map +1 -1
  19. package/esm2015/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config.js.map +1 -1
  20. package/esm2015/lib/modules/tiles/tiles.module.js +2 -2
  21. package/esm2015/lib/modules/tiles/tiles.module.js.map +1 -1
  22. package/fesm2015/skyux-tiles.js +98 -98
  23. package/fesm2015/skyux-tiles.js.map +1 -1
  24. package/lib/modules/tiles/tile-dashboard/tile-dashboard.component.d.ts +2 -2
  25. package/lib/modules/tiles/tile-dashboard/tile-dashboard.service.d.ts +2 -2
  26. package/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config.d.ts +1 -1
  27. package/package.json +16 -14
@@ -1,13 +1,13 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { SkyIdModule } from '@skyux/core';
3
4
  import { SkyI18nModule } from '@skyux/i18n';
4
5
  import { SkyChevronModule, SkyIconModule } from '@skyux/indicators';
5
6
  import { SkyThemeModule } from '@skyux/theme';
6
7
  import { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';
7
- import { SkyTileComponent } from './tile.component';
8
8
  import { SkyTileSummaryComponent } from './tile-summary.component';
9
9
  import { SkyTileTitleComponent } from './tile-title.component';
10
- import { SkyIdModule } from '@skyux/core';
10
+ import { SkyTileComponent } from './tile.component';
11
11
  import * as i0 from "@angular/core";
12
12
  export class SkyTileModule {
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tile.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;;AAmB1C,MAAM,OAAO,aAAa;;2GAAb,aAAa;4GAAb,aAAa,iBAftB,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB,aAGrB,YAAY;QACZ,gBAAgB;QAChB,WAAW;QACX,aAAa;QACb,aAAa;QACb,cAAc;QACd,uBAAuB,aAEf,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB;4GAE/D,aAAa,YAXf;YACP,YAAY;YACZ,gBAAgB;YAChB,WAAW;YACX,aAAa;YACb,aAAa;YACb,cAAc;YACd,uBAAuB;SACxB;4FAGU,aAAa;kBAjBzB,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,uBAAuB;wBACvB,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,uBAAuB;qBACxB;oBACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,CAAC;iBAC5E","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyChevronModule, SkyIconModule } from '@skyux/indicators';\n\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\n\nimport { SkyTileComponent } from './tile.component';\n\nimport { SkyTileSummaryComponent } from './tile-summary.component';\n\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyIdModule } from '@skyux/core';\n\n@NgModule({\n declarations: [\n SkyTileComponent,\n SkyTileSummaryComponent,\n SkyTileTitleComponent,\n ],\n imports: [\n CommonModule,\n SkyChevronModule,\n SkyIdModule,\n SkyI18nModule,\n SkyIconModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n})\nexport class SkyTileModule {}\n"]}
1
+ {"version":3,"file":"tile.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;;AAmBpD,MAAM,OAAO,aAAa;;2GAAb,aAAa;4GAAb,aAAa,iBAftB,gBAAgB;QAChB,uBAAuB;QACvB,qBAAqB,aAGrB,YAAY;QACZ,gBAAgB;QAChB,WAAW;QACX,aAAa;QACb,aAAa;QACb,cAAc;QACd,uBAAuB,aAEf,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB;4GAE/D,aAAa,YAXf;YACP,YAAY;YACZ,gBAAgB;YAChB,WAAW;YACX,aAAa;YACb,aAAa;YACb,cAAc;YACd,uBAAuB;SACxB;4FAGU,aAAa;kBAjBzB,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,gBAAgB;wBAChB,uBAAuB;wBACvB,qBAAqB;qBACtB;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,gBAAgB;wBAChB,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,uBAAuB;qBACxB;oBACD,OAAO,EAAE,CAAC,gBAAgB,EAAE,uBAAuB,EAAE,qBAAqB,CAAC;iBAC5E","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyIdModule } from '@skyux/core';\nimport { SkyI18nModule } from '@skyux/i18n';\nimport { SkyChevronModule, SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\n\nimport { SkyTileSummaryComponent } from './tile-summary.component';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyTileComponent } from './tile.component';\n\n@NgModule({\n declarations: [\n SkyTileComponent,\n SkyTileSummaryComponent,\n SkyTileTitleComponent,\n ],\n imports: [\n CommonModule,\n SkyChevronModule,\n SkyIdModule,\n SkyI18nModule,\n SkyIconModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n})\nexport class SkyTileModule {}\n"]}
@@ -1,5 +1,5 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
3
  import { SkyThemeModule } from '@skyux/theme';
4
4
  import { SkyTileContentSectionComponent } from './tile-content-section.component';
5
5
  import { SkyTileContentComponent } from './tile-content.component';
@@ -1 +1 @@
1
- {"version":3,"file":"tile-content.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;;AAOnE,MAAM,OAAO,oBAAoB;;kHAApB,oBAAoB;mHAApB,oBAAoB,iBAJhB,uBAAuB,EAAE,8BAA8B,aAC5D,YAAY,EAAE,cAAc,aAC5B,uBAAuB,EAAE,8BAA8B;mHAEtD,oBAAoB,YAHtB,CAAC,YAAY,EAAE,cAAc,CAAC;4FAG5B,oBAAoB;kBALhC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;oBACvE,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;iBACnE","sourcesContent":["import { NgModule } from '@angular/core';\n\nimport { CommonModule } from '@angular/common';\n\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\n\nimport { SkyTileContentComponent } from './tile-content.component';\n\n@NgModule({\n declarations: [SkyTileContentComponent, SkyTileContentSectionComponent],\n imports: [CommonModule, SkyThemeModule],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n})\nexport class SkyTileContentModule {}\n"]}
1
+ {"version":3,"file":"tile-content.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;;AAOnE,MAAM,OAAO,oBAAoB;;kHAApB,oBAAoB;mHAApB,oBAAoB,iBAJhB,uBAAuB,EAAE,8BAA8B,aAC5D,YAAY,EAAE,cAAc,aAC5B,uBAAuB,EAAE,8BAA8B;mHAEtD,oBAAoB,YAHtB,CAAC,YAAY,EAAE,cAAc,CAAC;4FAG5B,oBAAoB;kBALhC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;oBACvE,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;oBACvC,OAAO,EAAE,CAAC,uBAAuB,EAAE,8BAA8B,CAAC;iBACnE","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\nimport { SkyTileContentComponent } from './tile-content.component';\n\n@NgModule({\n declarations: [SkyTileContentComponent, SkyTileContentSectionComponent],\n imports: [CommonModule, SkyThemeModule],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n})\nexport class SkyTileContentModule {}\n"]}
@@ -1,11 +1,11 @@
1
- import { Component, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren, Optional, } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Optional, Output, QueryList, ViewChild, ViewChildren, } from '@angular/core';
2
+ import { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';
3
+ import { SkyLibResourcesService } from '@skyux/i18n';
2
4
  import { Subject } from 'rxjs';
3
5
  import { take, takeUntil } from 'rxjs/operators';
4
- import { SkyMediaQueryService, SkyMediaBreakpoints } from '@skyux/core';
5
- import { SkyLibResourcesService } from '@skyux/i18n';
6
6
  import { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';
7
- import { SkyTileDashboardService } from './tile-dashboard.service';
8
7
  import { SkyTileDashboardMessageType } from './tile-dashboard-message-type';
8
+ import { SkyTileDashboardService } from './tile-dashboard.service';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "./tile-dashboard.service";
11
11
  import * as i2 from "@skyux/core";
@@ -1 +1 @@
1
- {"version":3,"file":"tile-dashboard.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.ts","../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n Optional,\n} from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyMediaQueryService, SkyMediaBreakpoints } from '@skyux/core';\n\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\n\nimport { SkyTileDashboardMessage } from './tile-dashboard-message';\n\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\n\n/**\n * Specifies a container to group multiple tiles.\n */\n@Component({\n selector: 'sky-tile-dashboard',\n styleUrls: ['./tile-dashboard.component.scss'],\n templateUrl: './tile-dashboard.component.html',\n providers: [SkyTileDashboardService],\n})\nexport class SkyTileDashboardComponent implements AfterViewInit, OnDestroy {\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n @Input()\n public set config(value: SkyTileDashboardConfig) {\n if (value && !this.configSet) {\n this._config = value;\n this.configSet = true;\n this.checkReady();\n }\n }\n\n public get config(): SkyTileDashboardConfig {\n return this._config;\n }\n\n /**\n * Provides an observable to send commands to the tile dashboard. The commands should respect the\n * `SkyTileDashboardMessage` type.\n */\n @Input()\n public messageStream = new Subject<SkyTileDashboardMessage>();\n\n /**\n * Specifies a unique key for the UI Config Service to retrieve stored settings\n * from a database. The UI Config Service saves configuration settings for users\n * to preserve the layout and collapsed state of tile dashboards. The UI Config Service relies on `id` values from the `config` property to maintain user settings. For more information\n * about the UI Config Service, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/sticky-settings).\n */\n @Input()\n public settingsKey: string;\n\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n @Output()\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n @ViewChildren(SkyTileDashboardColumnComponent)\n private columns: QueryList<SkyTileDashboardColumnComponent>;\n\n @ViewChild('singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n })\n public singleColumn: SkyTileDashboardColumnComponent;\n\n public tileMovedReport: string;\n\n public moveInstructionsId =\n this.dashboardService.bagId + '-move-instructions';\n\n private _config: SkyTileDashboardConfig;\n\n private configSet = false;\n\n private ngUnsubscribe = new Subject();\n\n private viewReady = false;\n\n constructor(\n private dashboardService: SkyTileDashboardService,\n private mediaQuery: SkyMediaQueryService,\n @Optional() private resourcesService?: SkyLibResourcesService\n ) {\n this.dashboardService.configChange.subscribe(\n (config: SkyTileDashboardConfig) => {\n this.configChange.emit(config);\n\n // Update aria live region with tile drag info\n if (config.movedTile && this.resourcesService) {\n let messageObservable: Observable<string>;\n if (\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n ) {\n messageObservable = this.resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n '1',\n '1',\n config.movedTile.position.toString(),\n config.layout.singleColumn.tiles.length.toString()\n );\n } else {\n messageObservable = this.resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n config.movedTile.column.toString(),\n config.layout.multiColumn.length.toString(),\n config.movedTile.position.toString(),\n config.layout.multiColumn[\n config.movedTile.column - 1\n ].tiles.length.toString()\n );\n }\n messageObservable.pipe(take(1)).subscribe((message: string) => {\n this.tileMovedReport = message;\n });\n }\n }\n );\n }\n\n public ngAfterViewInit(): void {\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyTileDashboardMessage) => {\n this.handleIncomingMessages(message);\n });\n\n this.viewReady = true;\n this.checkReady();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.dashboardService.destroy();\n }\n\n private checkReady(): void {\n if (this.viewReady && this.config) {\n setTimeout(() => {\n this.dashboardService.init(\n this.config,\n this.columns,\n this.singleColumn,\n this.settingsKey\n );\n }, 0);\n }\n }\n\n private handleIncomingMessages(message: SkyTileDashboardMessage): void {\n /* tslint:disable-next-line:switch-default */\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.dashboardService.setAllTilesCollapsed(false);\n break;\n\n case SkyTileDashboardMessageType.CollapseAll:\n this.dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n}\n","<span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n</span>\n<sky-tile-dashboard-column\n *ngFor=\"let column of config?.layout?.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config?.layout?.multiColumn.length + '%'\n }\"\n>\n</sky-tile-dashboard-column>\n<sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n>\n</sky-tile-dashboard-column>\n<span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n}}</span>\n<ng-content></ng-content>\n"]}
1
+ {"version":3,"file":"tile-dashboard.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.ts","../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,KAAK,EAEL,QAAQ,EACR,MAAM,EACN,SAAS,EACT,SAAS,EACT,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAc,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,0DAA0D,CAAC;AAI3G,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;;;;;;;AAEnE;;GAEG;AAOH,MAAM,OAAO,yBAAyB;IAiEpC,YACU,gBAAyC,EACzC,UAAgC,EACpB,gBAAyC;QAFrD,qBAAgB,GAAhB,gBAAgB,CAAyB;QACzC,eAAU,GAAV,UAAU,CAAsB;QACpB,qBAAgB,GAAhB,gBAAgB,CAAyB;QAlD/D;;;WAGG;QAEI,kBAAa,GAAG,IAAI,OAAO,EAA2B,CAAC;QAY9D;;;;WAIG;QAEI,iBAAY,GAAG,IAAI,YAAY,EAA0B,CAAC;QAa1D,uBAAkB,GACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,oBAAoB,CAAC;QAI7C,cAAS,GAAG,KAAK,CAAC;QAElB,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,cAAS,GAAG,KAAK,CAAC;QAOxB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAC1C,CAAC,MAA8B,EAAE,EAAE;YACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/B,8CAA8C;YAC9C,IAAI,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBAC7C,IAAI,iBAAqC,CAAC;gBAC1C,IACE,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,mBAAmB,CAAC,EAAE;oBAClD,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,mBAAmB,CAAC,EAAE,EAClD;oBACA,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACjD,iCAAiC,EACjC,MAAM,CAAC,SAAS,CAAC,eAAe,EAChC,GAAG,EACH,GAAG,EACH,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EACpC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CACnD,CAAC;iBACH;qBAAM;oBACL,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACjD,iCAAiC,EACjC,MAAM,CAAC,SAAS,CAAC,eAAe,EAChC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,EAClC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,EAC3C,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAC5B,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAC1B,CAAC;iBACH;gBACD,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAe,EAAE,EAAE;oBAC5D,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;gBACjC,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IA1GD;;;OAGG;IACH,IACW,MAAM,CAAC,KAA6B;QAC7C,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;IACH,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IA6FM,eAAe;QACpB,IAAI,CAAC,aAAa;aACf,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACnC,SAAS,CAAC,CAAC,OAAgC,EAAE,EAAE;YAC9C,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,EAAE;YACjC,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,WAAW,CACjB,CAAC;YACJ,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;IACH,CAAC;IAEO,sBAAsB,CAAC,OAAgC;QAC7D,6CAA6C;QAC7C,QAAQ,OAAO,CAAC,IAAI,EAAE;YACpB,KAAK,2BAA2B,CAAC,SAAS;gBACxC,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAClD,MAAM;YAER,KAAK,2BAA2B,CAAC,WAAW;gBAC1C,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM;SACT;IACH,CAAC;;uHAtJU,yBAAyB;2GAAzB,yBAAyB,kLAFzB,CAAC,uBAAuB,CAAC,mHAiD5B,+BAA+B,0CAJzB,+BAA+B,gDC7E/C,0nBAoBA;4FDca,yBAAyB;kBANrC,SAAS;mBAAC;oBACT,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,iCAAiC,CAAC;oBAC9C,WAAW,EAAE,iCAAiC;oBAC9C,SAAS,EAAE,CAAC,uBAAuB,CAAC;iBACrC;;0BAqEI,QAAQ;4CA9DA,MAAM;sBADhB,KAAK;gBAkBC,aAAa;sBADnB,KAAK;gBAWC,WAAW;sBADjB,KAAK;gBASC,YAAY;sBADlB,MAAM;gBAIC,OAAO;sBADd,YAAY;uBAAC,+BAA+B;gBAOtC,YAAY;sBAJlB,SAAS;uBAAC,cAAc,EAAE;wBACzB,IAAI,EAAE,+BAA+B;wBACrC,MAAM,EAAE,KAAK;qBACd","sourcesContent":["import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { SkyMediaBreakpoints, SkyMediaQueryService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Observable, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\n\nimport { SkyTileDashboardMessage } from './tile-dashboard-message';\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\n\n/**\n * Specifies a container to group multiple tiles.\n */\n@Component({\n selector: 'sky-tile-dashboard',\n styleUrls: ['./tile-dashboard.component.scss'],\n templateUrl: './tile-dashboard.component.html',\n providers: [SkyTileDashboardService],\n})\nexport class SkyTileDashboardComponent implements AfterViewInit, OnDestroy {\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n @Input()\n public set config(value: SkyTileDashboardConfig) {\n if (value && !this.configSet) {\n this._config = value;\n this.configSet = true;\n this.checkReady();\n }\n }\n\n public get config(): SkyTileDashboardConfig {\n return this._config;\n }\n\n /**\n * Provides an observable to send commands to the tile dashboard. The commands should respect the\n * `SkyTileDashboardMessage` type.\n */\n @Input()\n public messageStream = new Subject<SkyTileDashboardMessage>();\n\n /**\n * Specifies a unique key for the UI Config Service to retrieve stored settings\n * from a database. The UI Config Service saves configuration settings for users\n * to preserve the layout and collapsed state of tile dashboards. The UI Config Service relies on `id` values from the `config` property to maintain user settings. For more information\n * about the UI Config Service, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/sticky-settings).\n */\n @Input()\n public settingsKey: string;\n\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n @Output()\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n @ViewChildren(SkyTileDashboardColumnComponent)\n private columns: QueryList<SkyTileDashboardColumnComponent>;\n\n @ViewChild('singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n })\n public singleColumn: SkyTileDashboardColumnComponent;\n\n public tileMovedReport: string;\n\n public moveInstructionsId =\n this.dashboardService.bagId + '-move-instructions';\n\n private _config: SkyTileDashboardConfig;\n\n private configSet = false;\n\n private ngUnsubscribe = new Subject();\n\n private viewReady = false;\n\n constructor(\n private dashboardService: SkyTileDashboardService,\n private mediaQuery: SkyMediaQueryService,\n @Optional() private resourcesService?: SkyLibResourcesService\n ) {\n this.dashboardService.configChange.subscribe(\n (config: SkyTileDashboardConfig) => {\n this.configChange.emit(config);\n\n // Update aria live region with tile drag info\n if (config.movedTile && this.resourcesService) {\n let messageObservable: Observable<string>;\n if (\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n ) {\n messageObservable = this.resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n '1',\n '1',\n config.movedTile.position.toString(),\n config.layout.singleColumn.tiles.length.toString()\n );\n } else {\n messageObservable = this.resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n config.movedTile.column.toString(),\n config.layout.multiColumn.length.toString(),\n config.movedTile.position.toString(),\n config.layout.multiColumn[\n config.movedTile.column - 1\n ].tiles.length.toString()\n );\n }\n messageObservable.pipe(take(1)).subscribe((message: string) => {\n this.tileMovedReport = message;\n });\n }\n }\n );\n }\n\n public ngAfterViewInit(): void {\n this.messageStream\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((message: SkyTileDashboardMessage) => {\n this.handleIncomingMessages(message);\n });\n\n this.viewReady = true;\n this.checkReady();\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n this.dashboardService.destroy();\n }\n\n private checkReady(): void {\n if (this.viewReady && this.config) {\n setTimeout(() => {\n this.dashboardService.init(\n this.config,\n this.columns,\n this.singleColumn,\n this.settingsKey\n );\n }, 0);\n }\n }\n\n private handleIncomingMessages(message: SkyTileDashboardMessage): void {\n /* tslint:disable-next-line:switch-default */\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.dashboardService.setAllTilesCollapsed(false);\n break;\n\n case SkyTileDashboardMessageType.CollapseAll:\n this.dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n}\n","<span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n</span>\n<sky-tile-dashboard-column\n *ngFor=\"let column of config?.layout?.multiColumn\"\n class=\"sky-tile-dashboard-layout-multi\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config?.layout?.multiColumn.length + '%'\n }\"\n>\n</sky-tile-dashboard-column>\n<sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-single\"\n #singleColumn\n>\n</sky-tile-dashboard-column>\n<span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n}}</span>\n<ng-content></ng-content>\n"]}
@@ -1,9 +1,9 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
3
  import { DragulaService } from 'ng2-dragula';
4
- import { SkyTileDashboardComponent } from './tile-dashboard.component';
5
- import { SkyTileDashboardColumnModule } from '../tile-dashboard-column/tile-dashboard-column.module';
6
4
  import { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';
5
+ import { SkyTileDashboardColumnModule } from '../tile-dashboard-column/tile-dashboard-column.module';
6
+ import { SkyTileDashboardComponent } from './tile-dashboard.component';
7
7
  import * as i0 from "@angular/core";
8
8
  export class SkyTileDashboardModule {
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tile-dashboard.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;;AAYlF,MAAM,OAAO,sBAAsB;;oHAAtB,sBAAsB;qHAAtB,sBAAsB,iBATlB,yBAAyB,aAGtC,YAAY;QACZ,4BAA4B;QAC5B,uBAAuB,aAEf,yBAAyB;qHAExB,sBAAsB,aARtB,CAAC,cAAc,CAAC,YAClB;YACP,YAAY;YACZ,4BAA4B;YAC5B,uBAAuB;SACxB;4FAGU,sBAAsB;kBAVlC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,SAAS,EAAE,CAAC,cAAc,CAAC;oBAC3B,OAAO,EAAE;wBACP,YAAY;wBACZ,4BAA4B;wBAC5B,uBAAuB;qBACxB;oBACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;iBACrC","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DragulaService } from 'ng2-dragula';\n\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\nimport { SkyTileDashboardColumnModule } from '../tile-dashboard-column/tile-dashboard-column.module';\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\n\n@NgModule({\n declarations: [SkyTileDashboardComponent],\n providers: [DragulaService],\n imports: [\n CommonModule,\n SkyTileDashboardColumnModule,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n})\nexport class SkyTileDashboardModule {}\n"]}
1
+ {"version":3,"file":"tile-dashboard.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AAErG,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;;AAYvE,MAAM,OAAO,sBAAsB;;oHAAtB,sBAAsB;qHAAtB,sBAAsB,iBATlB,yBAAyB,aAGtC,YAAY;QACZ,4BAA4B;QAC5B,uBAAuB,aAEf,yBAAyB;qHAExB,sBAAsB,aARtB,CAAC,cAAc,CAAC,YAClB;YACP,YAAY;YACZ,4BAA4B;YAC5B,uBAAuB;SACxB;4FAGU,sBAAsB;kBAVlC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,yBAAyB,CAAC;oBACzC,SAAS,EAAE,CAAC,cAAc,CAAC;oBAC3B,OAAO,EAAE;wBACP,YAAY;wBACZ,4BAA4B;wBAC5B,uBAAuB;qBACxB;oBACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;iBACrC","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DragulaService } from 'ng2-dragula';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardColumnModule } from '../tile-dashboard-column/tile-dashboard-column.module';\n\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\n\n@NgModule({\n declarations: [SkyTileDashboardComponent],\n providers: [DragulaService],\n imports: [\n CommonModule,\n SkyTileDashboardColumnModule,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n})\nexport class SkyTileDashboardModule {}\n"]}
@@ -1,7 +1,7 @@
1
- import { EventEmitter, Injectable, Output, Injector, } from '@angular/core';
1
+ import { EventEmitter, Injectable, Injector, Output, } from '@angular/core';
2
+ import { SkyMediaBreakpoints, SkyMediaQueryService, SkyUIConfigService, } from '@skyux/core';
2
3
  import { DragulaService } from 'ng2-dragula';
3
4
  import { take } from 'rxjs/operators';
4
- import { SkyMediaBreakpoints, SkyMediaQueryService, SkyUIConfigService, } from '@skyux/core';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "ng2-dragula";
7
7
  import * as i2 from "@skyux/core";
@@ -72,7 +72,7 @@ export class SkyTileDashboardService {
72
72
  * @param tile Specifies the tile component to check.
73
73
  */
74
74
  tileIsCollapsed(tile) {
75
- let tileConfig = this.findTile(this.getTileId(tile));
75
+ const tileConfig = this.findTile(this.getTileId(tile));
76
76
  if (tileConfig) {
77
77
  return tileConfig.isCollapsed;
78
78
  }
@@ -85,12 +85,12 @@ export class SkyTileDashboardService {
85
85
  setAllTilesCollapsed(isCollapsed) {
86
86
  /*istanbul ignore else */
87
87
  if (this.config && this.config.layout.multiColumn) {
88
- for (let column of this.config.layout.multiColumn) {
89
- for (let tile of column.tiles) {
88
+ for (const column of this.config.layout.multiColumn) {
89
+ for (const tile of column.tiles) {
90
90
  tile.isCollapsed = isCollapsed;
91
91
  }
92
92
  }
93
- for (let tile of this.config.layout.singleColumn.tiles) {
93
+ for (const tile of this.config.layout.singleColumn.tiles) {
94
94
  tile.isCollapsed = isCollapsed;
95
95
  }
96
96
  }
@@ -105,7 +105,7 @@ export class SkyTileDashboardService {
105
105
  * @param isCollapsed Indicates whether the tile is collapsed.
106
106
  */
107
107
  setTileCollapsed(tile, isCollapsed) {
108
- let tileConfig = this.findTile(this.getTileId(tile));
108
+ const tileConfig = this.findTile(this.getTileId(tile));
109
109
  if (tileConfig) {
110
110
  tileConfig.isCollapsed = isCollapsed;
111
111
  if (this.settingsKey) {
@@ -119,7 +119,7 @@ export class SkyTileDashboardService {
119
119
  */
120
120
  getTileComponentType(layoutTile) {
121
121
  if (layoutTile) {
122
- for (let tile of this.config.tiles) {
122
+ for (const tile of this.config.tiles) {
123
123
  if (tile.id === layoutTile.id) {
124
124
  return tile.componentType;
125
125
  }
@@ -145,7 +145,7 @@ export class SkyTileDashboardService {
145
145
  * @internal
146
146
  */
147
147
  getTileComponent(tileId) {
148
- for (let tileComponent of this.tileComponents) {
148
+ for (const tileComponent of this.tileComponents) {
149
149
  if (tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===
150
150
  tileId) {
151
151
  return tileComponent;
@@ -169,8 +169,8 @@ export class SkyTileDashboardService {
169
169
  moveTileOnKeyDown(tileCmp, direction, tileDescription) {
170
170
  const isSingleColumnMode = this.mediaQuery.current === SkyMediaBreakpoints.xs ||
171
171
  this.mediaQuery.current === SkyMediaBreakpoints.sm;
172
- let tileId = this.getTileId(tileCmp);
173
- let tile = this.findTile(tileId);
172
+ const tileId = this.getTileId(tileCmp);
173
+ const tile = this.findTile(tileId);
174
174
  let column;
175
175
  let colIndex;
176
176
  if (isSingleColumnMode) {
@@ -182,8 +182,8 @@ export class SkyTileDashboardService {
182
182
  }
183
183
  if ((direction === 'left' || direction === 'right') &&
184
184
  !isSingleColumnMode) {
185
- let operator = direction === 'left' ? -1 : 1;
186
- let newColumn = this.config.layout.multiColumn[colIndex + operator];
185
+ const operator = direction === 'left' ? -1 : 1;
186
+ const newColumn = this.config.layout.multiColumn[colIndex + operator];
187
187
  if (newColumn) {
188
188
  // Move the tile to the end of the new column
189
189
  newColumn.tiles.push(tile);
@@ -192,7 +192,7 @@ export class SkyTileDashboardService {
192
192
  tile,
193
193
  ]);
194
194
  // Report the change in configuration
195
- let reportConfig = this.config;
195
+ const reportConfig = this.config;
196
196
  reportConfig.movedTile = {
197
197
  tileDescription: tileDescription || /* istanbul ignore next */ tile.id,
198
198
  column: colIndex + operator + 1,
@@ -202,11 +202,11 @@ export class SkyTileDashboardService {
202
202
  }
203
203
  }
204
204
  else {
205
- let operator = direction === 'up' ? -1 : 1;
206
- let curIndex = column.tiles.findIndex((value) => value.id === tile.id);
207
- let tileComponentInstance = this.getTileComponent(tileId);
205
+ const operator = direction === 'up' ? -1 : 1;
206
+ const curIndex = column.tiles.findIndex((value) => value.id === tile.id);
207
+ const tileComponentInstance = this.getTileComponent(tileId);
208
208
  if (tileComponentInstance && column.tiles[curIndex + operator]) {
209
- let temp = column.tiles[curIndex + operator];
209
+ const temp = column.tiles[curIndex + operator];
210
210
  column.tiles[curIndex + operator] = tile;
211
211
  column.tiles[curIndex] = temp;
212
212
  // Get the column element
@@ -226,7 +226,7 @@ export class SkyTileDashboardService {
226
226
  .location.nativeElement);
227
227
  }
228
228
  // Report the change in configuration
229
- let reportConfig = this.config;
229
+ const reportConfig = this.config;
230
230
  reportConfig.movedTile = {
231
231
  tileDescription: tileDescription || /* istanbul ignore next */ tile.id,
232
232
  column: isSingleColumnMode ? undefined : colIndex + 1,
@@ -253,7 +253,7 @@ export class SkyTileDashboardService {
253
253
  getTileOrRemoveFromLayout(layoutTile) {
254
254
  /*istanbul ignore else */
255
255
  if (layoutTile) {
256
- for (let tile of this.config.tiles) {
256
+ for (const tile of this.config.tiles) {
257
257
  if (tile.id === layoutTile.id) {
258
258
  return tile;
259
259
  }
@@ -282,29 +282,29 @@ export class SkyTileDashboardService {
282
282
  }
283
283
  }
284
284
  loadTiles() {
285
- let layout = this.config.layout;
285
+ const layout = this.config.layout;
286
286
  if (this.mediaQuery.current === SkyMediaBreakpoints.xs ||
287
287
  this.mediaQuery.current === SkyMediaBreakpoints.sm) {
288
- for (let tile of layout.singleColumn.tiles) {
288
+ for (const tile of layout.singleColumn.tiles) {
289
289
  this.loadTileIntoColumn(this.singleColumn, tile);
290
290
  }
291
291
  }
292
292
  else {
293
- let columns = this.columns.toArray();
293
+ const columns = this.columns.toArray();
294
294
  for (let i = 0, n = layout.multiColumn.length; i < n; i++) {
295
- let column = columns[i];
296
- for (let tile of layout.multiColumn[i].tiles) {
295
+ const column = columns[i];
296
+ for (const tile of layout.multiColumn[i].tiles) {
297
297
  this.loadTileIntoColumn(column, tile);
298
298
  }
299
299
  }
300
300
  }
301
301
  }
302
302
  loadTileIntoColumn(column, layoutTile) {
303
- let tile = this.getTileOrRemoveFromLayout(layoutTile);
303
+ const tile = this.getTileOrRemoveFromLayout(layoutTile);
304
304
  /*istanbul ignore else */
305
305
  if (tile) {
306
- let componentType = tile.componentType;
307
- let providers = tile.providers /* istanbul ignore next */ || [];
306
+ const componentType = tile.componentType;
307
+ const providers = tile.providers /* istanbul ignore next */ || [];
308
308
  const injector = Injector.create({
309
309
  providers,
310
310
  parent: column.injector,
@@ -321,16 +321,16 @@ export class SkyTileDashboardService {
321
321
  this.moveTilesToColumn(this.singleColumn, this.config.layout.singleColumn.tiles);
322
322
  }
323
323
  moveTilesToMultiColumn() {
324
- let layoutColumns = this.config.layout.multiColumn;
325
- let columns = this.columns.toArray();
324
+ const layoutColumns = this.config.layout.multiColumn;
325
+ const columns = this.columns.toArray();
326
326
  for (let i = 0, n = layoutColumns.length; i < n; i++) {
327
327
  this.moveTilesToColumn(columns[i], layoutColumns[i].tiles);
328
328
  }
329
329
  }
330
330
  moveTilesToColumn(column, layoutTiles) {
331
- let columnEl = this.getColumnEl(column);
332
- for (let layoutTile of layoutTiles) {
333
- let tileComponentInstance = this.getTileComponent(layoutTile.id);
331
+ const columnEl = this.getColumnEl(column);
332
+ for (const layoutTile of layoutTiles) {
333
+ const tileComponentInstance = this.getTileComponent(layoutTile.id);
334
334
  /*istanbul ignore else */
335
335
  if (tileComponentInstance) {
336
336
  columnEl.appendChild(tileComponentInstance.location.nativeElement);
@@ -362,11 +362,11 @@ export class SkyTileDashboardService {
362
362
  getMultiColumnLayoutForUIState() {
363
363
  if (!(this.mediaQuery.current === SkyMediaBreakpoints.xs ||
364
364
  this.mediaQuery.current === SkyMediaBreakpoints.sm)) {
365
- let layoutColumns = [];
366
- let columns = this.columns.toArray();
367
- for (let column of columns) {
365
+ const layoutColumns = [];
366
+ const columns = this.columns.toArray();
367
+ for (const column of columns) {
368
368
  if (column !== this.singleColumn) {
369
- let layoutColumn = {
369
+ const layoutColumn = {
370
370
  tiles: this.getTilesInEl(this.getColumnEl(column)),
371
371
  };
372
372
  layoutColumns.push(layoutColumn);
@@ -377,14 +377,14 @@ export class SkyTileDashboardService {
377
377
  return this.config.layout.multiColumn;
378
378
  }
379
379
  getTilesInEl(el) {
380
- let tileEls = el.querySelectorAll('[' + ATTR_TILE_ID + ']');
381
- let layoutTiles = [];
380
+ const tileEls = el.querySelectorAll('[' + ATTR_TILE_ID + ']');
381
+ const layoutTiles = [];
382
382
  /*istanbul ignore else */
383
383
  if (tileEls) {
384
384
  for (let i = 0, n = tileEls.length; i < n; i++) {
385
- let tileEl = tileEls[i];
386
- let tileId = tileEl.getAttribute(ATTR_TILE_ID);
387
- let tile = this.findTile(tileId);
385
+ const tileEl = tileEls[i];
386
+ const tileId = tileEl.getAttribute(ATTR_TILE_ID);
387
+ const tile = this.findTile(tileId);
388
388
  /*istanbul ignore else */
389
389
  if (tile) {
390
390
  layoutTiles.push(tile);
@@ -409,7 +409,7 @@ export class SkyTileDashboardService {
409
409
  },
410
410
  });
411
411
  this.dragulaService.drop.subscribe((value) => {
412
- let config = this.getConfigForUIState();
412
+ const config = this.getConfigForUIState();
413
413
  /*istanbul ignore else */
414
414
  if (config) {
415
415
  if (this.settingsKey) {
@@ -425,10 +425,10 @@ export class SkyTileDashboardService {
425
425
  findTile(tileId) {
426
426
  /*istanbul ignore else */
427
427
  if (this.config && this.config.layout.multiColumn) {
428
- for (let column of this.config.layout.multiColumn) {
428
+ for (const column of this.config.layout.multiColumn) {
429
429
  /*istanbul ignore else */
430
430
  if (column.tiles) {
431
- for (let tile of column.tiles) {
431
+ for (const tile of column.tiles) {
432
432
  if (tile.id === tileId) {
433
433
  return tile;
434
434
  }
@@ -466,7 +466,7 @@ export class SkyTileDashboardService {
466
466
  }
467
467
  checkForNewTiles(oldUserTiles) {
468
468
  // Get a list of tiles that are in the config's default list but not in the user's settings
469
- let newTiles = this.config.tiles.filter((elem) => {
469
+ const newTiles = this.config.tiles.filter((elem) => {
470
470
  return oldUserTiles.indexOf(elem.id) === -1;
471
471
  });
472
472
  const { multiColumn, singleColumn } = this.config.layout;
@@ -499,14 +499,14 @@ export class SkyTileDashboardService {
499
499
  }
500
500
  /*istanbul ignore else */
501
501
  if (singleColumn) {
502
- for (let tile of singleColumn.tiles) {
502
+ for (const tile of singleColumn.tiles) {
503
503
  this.getTileOrRemoveFromLayout(tile);
504
504
  }
505
505
  }
506
506
  /*istanbul ignore else */
507
507
  if (multiColumn) {
508
508
  for (let i = 0, n = multiColumn.length; i < n; i++) {
509
- for (let tile of multiColumn[i].tiles) {
509
+ for (const tile of multiColumn[i].tiles) {
510
510
  this.getTileOrRemoveFromLayout(tile);
511
511
  }
512
512
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tile-dashboard.service.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ComponentRef,\n EventEmitter,\n Injectable,\n QueryList,\n Output,\n Injector,\n} from '@angular/core';\n\nimport { DragulaService } from 'ng2-dragula';\n\nimport { Subscription } from 'rxjs';\n\nimport { take } from 'rxjs/operators';\n\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\n\nimport { SkyTileComponent } from '../tile/tile.component';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\n\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\n\nimport { SkyTileDashboardConfigLayoutColumn } from '../tile-dashboard-config/tile-dashboard-config-layout-column';\n\nimport { SkyTileDashboardConfigLayoutTile } from '../tile-dashboard-config/tile-dashboard-config-layout-tile';\n\nimport { SkyTileDashboardConfigTile } from '../tile-dashboard-config/tile-dashboard-config-tile';\n\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\n\nlet bagIdIndex = 0;\n\n@Injectable()\nexport class SkyTileDashboardService {\n /**\n * @internal\n */\n public bagId: string;\n\n /**\n * @internal\n */\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n @Output()\n public dashboardInitialized = new EventEmitter<void>();\n\n private tileComponents: ComponentRef<any>[];\n\n private config: SkyTileDashboardConfig;\n\n private defaultConfig: SkyTileDashboardConfig;\n\n private columns: QueryList<SkyTileDashboardColumnComponent>;\n\n private singleColumn: SkyTileDashboardColumnComponent;\n\n private mediaSubscription: Subscription;\n\n private settingsKey: string;\n\n constructor(\n private dragulaService: DragulaService,\n private mediaQuery: SkyMediaQueryService,\n private uiConfigService: SkyUIConfigService\n ) {\n this.bagId = 'sky-tile-dashboard-bag-' + ++bagIdIndex;\n\n this.initDragula();\n }\n\n /**\n * @internal\n */\n public init(\n config: SkyTileDashboardConfig,\n columns?: QueryList<SkyTileDashboardColumnComponent>,\n singleColumn?: SkyTileDashboardColumnComponent,\n settingsKey?: string\n ) {\n if (settingsKey) {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.defaultConfig = this.config = Object.assign({}, config);\n\n this.settingsKey = settingsKey;\n\n this.uiConfigService\n .getConfig(settingsKey, config)\n .pipe(take(1))\n .subscribe(\n (value: any) => {\n if (value.persisted) {\n this.config.layout = value.layout;\n this.checkForNewTiles(value.tileIds);\n this.configChange.emit(this.config);\n\n this.columns = columns;\n this.singleColumn = singleColumn;\n this.checkReadyAndLoadTiles();\n } else {\n // Bad data, or config is the default config.\n this.initToDefaults(config, columns, singleColumn);\n }\n },\n (error: any) => {\n // Config setting key doesn't exist or other config service error\n this.initToDefaults(config, columns, singleColumn);\n }\n );\n } else {\n this.initToDefaults(config, columns, singleColumn);\n }\n }\n\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n public addTileComponent(\n tile: SkyTileDashboardConfigLayoutTile,\n component: ComponentRef<any>\n ) {\n this.tileComponents = this.tileComponents || [];\n\n this.tileComponents.push(component);\n\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n public tileIsCollapsed(tile: SkyTileComponent): boolean {\n let tileConfig = this.findTile(this.getTileId(tile));\n\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n\n return undefined;\n }\n\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n public setAllTilesCollapsed(isCollapsed: boolean): void {\n /*istanbul ignore else */\n if (this.config && this.config.layout.multiColumn) {\n for (let column of this.config.layout.multiColumn) {\n for (let tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (let tile of this.config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n\n if (this.settingsKey) {\n this.setUserConfig(this.config);\n }\n\n this.configChange.emit(this.config);\n }\n\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n public setTileCollapsed(tile: SkyTileComponent, isCollapsed: boolean) {\n let tileConfig = this.findTile(this.getTileId(tile));\n\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n\n if (this.settingsKey) {\n this.setUserConfig(this.config);\n }\n\n this.configChange.emit(this.config);\n }\n }\n\n /**\n * @internal\n */\n public getTileComponentType(\n layoutTile: SkyTileDashboardConfigLayoutTile\n ): any {\n if (layoutTile) {\n for (let tile of this.config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * @internal\n */\n public changeColumnMode(isSingleColumn: boolean) {\n /*istanbul ignore else */\n if (this.config) {\n if (isSingleColumn) {\n this.moveTilesToSingleColumn();\n } else {\n this.moveTilesToMultiColumn();\n }\n }\n }\n\n /**\n * @internal\n */\n public getTileComponent(tileId: string): ComponentRef<any> {\n for (let tileComponent of this.tileComponents) {\n if (\n tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId\n ) {\n return tileComponent;\n }\n }\n\n /*istanbul ignore next */\n return undefined;\n }\n\n /**\n * @internal\n */\n public destroy() {\n /*istanbul ignore else */\n if (this.mediaSubscription) {\n this.mediaSubscription.unsubscribe();\n }\n }\n\n /**\n * @internal\n */\n public moveTileOnKeyDown(\n tileCmp: SkyTileComponent,\n direction: string,\n tileDescription: string\n ) {\n const isSingleColumnMode =\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm;\n\n let tileId = this.getTileId(tileCmp);\n let tile = this.findTile(tileId);\n\n let column: SkyTileDashboardConfigLayoutColumn;\n let colIndex: number;\n if (isSingleColumnMode) {\n column = this.config.layout.singleColumn;\n } else {\n column = this.findTileColumn(tileId);\n colIndex = this.config.layout.multiColumn.findIndex(\n (value) => value === column\n );\n }\n\n if (\n (direction === 'left' || direction === 'right') &&\n !isSingleColumnMode\n ) {\n let operator = direction === 'left' ? -1 : 1;\n let newColumn = this.config.layout.multiColumn[colIndex + operator];\n\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.moveTilesToColumn(this.columns.toArray()[colIndex + operator], [\n tile,\n ]);\n\n // Report the change in configuration\n let reportConfig = this.config;\n reportConfig.movedTile = {\n tileDescription:\n tileDescription || /* istanbul ignore next */ tile.id,\n column: colIndex + operator + 1,\n position: newColumn.tiles.length,\n };\n this.configChange.emit(reportConfig);\n }\n } else {\n let operator = direction === 'up' ? -1 : 1;\n let curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n let tileComponentInstance = this.getTileComponent(tileId);\n\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n let temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n\n // Get the column element\n let columnEl: Element;\n if (isSingleColumnMode) {\n columnEl = this.getColumnEl(this.singleColumn);\n } else {\n columnEl = this.getColumnEl(this.columns.toArray()[colIndex]);\n }\n\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n columnEl.appendChild(tileComponentInstance.location.nativeElement);\n } else {\n columnEl.insertBefore(\n tileComponentInstance.location.nativeElement,\n this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n .location.nativeElement\n );\n }\n\n // Report the change in configuration\n let reportConfig = this.config;\n reportConfig.movedTile = {\n tileDescription:\n tileDescription || /* istanbul ignore next */ tile.id,\n column: isSingleColumnMode ? undefined : colIndex + 1,\n position: curIndex + operator + 1,\n };\n this.configChange.emit(reportConfig);\n }\n }\n }\n\n private getTileId(tile: SkyTileComponent): string {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId: string;\n\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n\n if (tileId) {\n return tileId;\n }\n\n el = el.parentElement;\n }\n }\n\n return undefined;\n }\n\n private getTileOrRemoveFromLayout(\n layoutTile: SkyTileDashboardConfigLayoutTile\n ): SkyTileDashboardConfigTile {\n /*istanbul ignore else */\n if (layoutTile) {\n for (let tile of this.config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n /*istanbul ignore else */\n if (this.config.layout.singleColumn) {\n this.config.layout.singleColumn.tiles =\n this.config.layout.singleColumn.tiles.filter(\n (elem) => elem.id !== layoutTile.id\n );\n }\n\n /*istanbul ignore else */\n if (this.config.layout.multiColumn) {\n this.config.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n }\n\n /*istanbul ignore next */\n return undefined;\n }\n\n private checkReadyAndLoadTiles() {\n if (this.config && this.columns) {\n this.loadTiles();\n this.initMediaQueries();\n this.dashboardInitialized.emit();\n }\n }\n\n private loadTiles() {\n let layout = this.config.layout;\n\n if (\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n ) {\n for (let tile of layout.singleColumn.tiles) {\n this.loadTileIntoColumn(this.singleColumn, tile);\n }\n } else {\n let columns = this.columns.toArray();\n\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n let column = columns[i];\n\n for (let tile of layout.multiColumn[i].tiles) {\n this.loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n\n private loadTileIntoColumn(\n column: SkyTileDashboardColumnComponent,\n layoutTile: SkyTileDashboardConfigLayoutTile\n ) {\n let tile = this.getTileOrRemoveFromLayout(layoutTile);\n\n /*istanbul ignore else */\n if (tile) {\n let componentType = tile.componentType;\n let providers = tile.providers /* istanbul ignore next */ || [];\n\n const injector = Injector.create({\n providers,\n parent: column.injector,\n });\n\n const factory = column.resolver.resolveComponentFactory(componentType);\n const componentRef = column.content.createComponent(\n factory,\n undefined,\n injector\n );\n\n this.addTileComponent(layoutTile, componentRef);\n\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n\n private moveTilesToSingleColumn() {\n this.moveTilesToColumn(\n this.singleColumn,\n this.config.layout.singleColumn.tiles\n );\n }\n\n private moveTilesToMultiColumn() {\n let layoutColumns = this.config.layout.multiColumn;\n let columns = this.columns.toArray();\n\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n\n private moveTilesToColumn(\n column: SkyTileDashboardColumnComponent,\n layoutTiles: SkyTileDashboardConfigLayoutTile[]\n ) {\n let columnEl = this.getColumnEl(column);\n\n for (let layoutTile of layoutTiles) {\n let tileComponentInstance = this.getTileComponent(layoutTile.id);\n\n /*istanbul ignore else */\n if (tileComponentInstance) {\n columnEl.appendChild(tileComponentInstance.location.nativeElement);\n }\n }\n }\n\n private getConfigForUIState(): SkyTileDashboardConfig {\n /*istanbul ignore else */\n if (this.config) {\n this.config = {\n tiles: this.config.tiles,\n layout: {\n singleColumn: this.getSingleColumnLayoutForUIState(),\n multiColumn: this.getMultiColumnLayoutForUIState(),\n },\n };\n }\n\n return this.config;\n }\n\n private getSingleColumnLayoutForUIState(): SkyTileDashboardConfigLayoutColumn {\n if (\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n ) {\n return {\n tiles: this.getTilesInEl(this.getColumnEl(this.singleColumn)),\n };\n }\n\n return this.config.layout.singleColumn;\n }\n\n private getMultiColumnLayoutForUIState(): SkyTileDashboardConfigLayoutColumn[] {\n if (\n !(\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n )\n ) {\n let layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n let columns = this.columns.toArray();\n\n for (let column of columns) {\n if (column !== this.singleColumn) {\n let layoutColumn: SkyTileDashboardConfigLayoutColumn = {\n tiles: this.getTilesInEl(this.getColumnEl(column)),\n };\n\n layoutColumns.push(layoutColumn);\n }\n }\n\n return layoutColumns;\n }\n\n return this.config.layout.multiColumn;\n }\n\n private getTilesInEl(el: Element): SkyTileDashboardConfigLayoutTile[] {\n let tileEls: any = el.querySelectorAll('[' + ATTR_TILE_ID + ']');\n let layoutTiles: SkyTileDashboardConfigLayoutTile[] = [];\n\n /*istanbul ignore else */\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n let tileEl = tileEls[i];\n let tileId = tileEl.getAttribute(ATTR_TILE_ID);\n let tile = this.findTile(tileId);\n\n /*istanbul ignore else */\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n\n return layoutTiles;\n }\n\n private initMediaQueries() {\n /*istanbul ignore else */\n if (!this.mediaSubscription) {\n this.mediaSubscription = this.mediaQuery.subscribe(\n (args: SkyMediaBreakpoints) => {\n this.changeColumnMode(\n args === SkyMediaBreakpoints.xs || args === SkyMediaBreakpoints.sm\n );\n }\n );\n }\n }\n\n private initDragula() {\n this.dragulaService.setOptions(this.bagId, {\n moves: (el: HTMLElement, container: HTMLElement, handle: HTMLElement) => {\n const target = el.querySelector('.sky-tile-grab-handle');\n return target.contains(handle);\n },\n });\n\n this.dragulaService.drop.subscribe((value: any[]) => {\n let config = this.getConfigForUIState();\n\n /*istanbul ignore else */\n if (config) {\n if (this.settingsKey) {\n this.setUserConfig(config);\n }\n\n this.configChange.emit(config);\n }\n });\n }\n\n private getColumnEl(column: SkyTileDashboardColumnComponent): Element {\n return column.content.element.nativeElement.parentNode;\n }\n\n private findTile(tileId: string): SkyTileDashboardConfigLayoutTile {\n /*istanbul ignore else */\n if (this.config && this.config.layout.multiColumn) {\n for (let column of this.config.layout.multiColumn) {\n /*istanbul ignore else */\n if (column.tiles) {\n for (let tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n\n return undefined;\n }\n\n private findTileColumn(tileId: string): SkyTileDashboardConfigLayoutColumn {\n /*istanbul ignore else */\n if (this.config && this.config.layout.multiColumn) {\n return this.config.layout.multiColumn.find(\n (col) => col.tiles && !!col.tiles.find((tile) => tile.id === tileId)\n );\n }\n\n /*istanbul ignore next */\n return undefined;\n }\n\n private initToDefaults(\n config: SkyTileDashboardConfig,\n columns: QueryList<SkyTileDashboardColumnComponent>,\n singleColumn: SkyTileDashboardColumnComponent\n ) {\n this.config = config;\n this.columns = columns;\n this.singleColumn = singleColumn;\n this.checkReadyAndLoadTiles();\n }\n\n private setUserConfig(config: SkyTileDashboardConfig) {\n this.uiConfigService\n .setConfig(this.settingsKey, {\n layout: this.config.layout,\n persisted: true,\n tileIds: this.defaultConfig.tiles.map((elem) => elem.id),\n })\n .subscribe(\n () => {},\n (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n }\n );\n }\n\n private checkForNewTiles(oldUserTiles: string[]) {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n let newTiles = this.config.tiles.filter((elem) => {\n return oldUserTiles.indexOf(elem.id) === -1;\n });\n\n const { multiColumn, singleColumn } = this.config.layout;\n\n // Append new tiles to the end of the layouts\n /*istanbul ignore else */\n if (newTiles.length > 0) {\n /*istanbul ignore else */\n if (multiColumn) {\n newTiles.forEach((elem) => {\n let locationToAdd = 0;\n let smallest = multiColumn[0].tiles.length;\n multiColumn.forEach((item, index) => {\n if (item.tiles.length < smallest) {\n locationToAdd = index;\n smallest = item.tiles.length;\n }\n });\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n\n /*istanbul ignore else */\n if (singleColumn) {\n newTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n }\n\n /*istanbul ignore else */\n if (singleColumn) {\n for (let tile of singleColumn.tiles) {\n this.getTileOrRemoveFromLayout(tile);\n }\n }\n\n /*istanbul ignore else */\n if (multiColumn) {\n for (let i = 0, n = multiColumn.length; i < n; i++) {\n for (let tile of multiColumn[i].tiles) {\n this.getTileOrRemoveFromLayout(tile);\n }\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"tile-dashboard.service.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ComponentRef,\n EventEmitter,\n Injectable,\n Injector,\n Output,\n QueryList,\n} from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\n\nimport { DragulaService } from 'ng2-dragula';\nimport { Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\nimport { SkyTileDashboardConfigLayoutColumn } from '../tile-dashboard-config/tile-dashboard-config-layout-column';\nimport { SkyTileDashboardConfigLayoutTile } from '../tile-dashboard-config/tile-dashboard-config-layout-tile';\nimport { SkyTileDashboardConfigTile } from '../tile-dashboard-config/tile-dashboard-config-tile';\nimport { SkyTileComponent } from '../tile/tile.component';\n\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\n\nlet bagIdIndex = 0;\n\n@Injectable()\nexport class SkyTileDashboardService {\n /**\n * @internal\n */\n public bagId: string;\n\n /**\n * @internal\n */\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n @Output()\n public dashboardInitialized = new EventEmitter<void>();\n\n private tileComponents: ComponentRef<any>[];\n\n private config: SkyTileDashboardConfig;\n\n private defaultConfig: SkyTileDashboardConfig;\n\n private columns: QueryList<SkyTileDashboardColumnComponent>;\n\n private singleColumn: SkyTileDashboardColumnComponent;\n\n private mediaSubscription: Subscription;\n\n private settingsKey: string;\n\n constructor(\n private dragulaService: DragulaService,\n private mediaQuery: SkyMediaQueryService,\n private uiConfigService: SkyUIConfigService\n ) {\n this.bagId = 'sky-tile-dashboard-bag-' + ++bagIdIndex;\n\n this.initDragula();\n }\n\n /**\n * @internal\n */\n public init(\n config: SkyTileDashboardConfig,\n columns?: QueryList<SkyTileDashboardColumnComponent>,\n singleColumn?: SkyTileDashboardColumnComponent,\n settingsKey?: string\n ) {\n if (settingsKey) {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.defaultConfig = this.config = Object.assign({}, config);\n\n this.settingsKey = settingsKey;\n\n this.uiConfigService\n .getConfig(settingsKey, config)\n .pipe(take(1))\n .subscribe(\n (value: any) => {\n if (value.persisted) {\n this.config.layout = value.layout;\n this.checkForNewTiles(value.tileIds);\n this.configChange.emit(this.config);\n\n this.columns = columns;\n this.singleColumn = singleColumn;\n this.checkReadyAndLoadTiles();\n } else {\n // Bad data, or config is the default config.\n this.initToDefaults(config, columns, singleColumn);\n }\n },\n (error: any) => {\n // Config setting key doesn't exist or other config service error\n this.initToDefaults(config, columns, singleColumn);\n }\n );\n } else {\n this.initToDefaults(config, columns, singleColumn);\n }\n }\n\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n public addTileComponent(\n tile: SkyTileDashboardConfigLayoutTile,\n component: ComponentRef<any>\n ) {\n this.tileComponents = this.tileComponents || [];\n\n this.tileComponents.push(component);\n\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n public tileIsCollapsed(tile: SkyTileComponent): boolean {\n const tileConfig = this.findTile(this.getTileId(tile));\n\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n\n return undefined;\n }\n\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n public setAllTilesCollapsed(isCollapsed: boolean): void {\n /*istanbul ignore else */\n if (this.config && this.config.layout.multiColumn) {\n for (const column of this.config.layout.multiColumn) {\n for (const tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (const tile of this.config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n\n if (this.settingsKey) {\n this.setUserConfig(this.config);\n }\n\n this.configChange.emit(this.config);\n }\n\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n public setTileCollapsed(tile: SkyTileComponent, isCollapsed: boolean) {\n const tileConfig = this.findTile(this.getTileId(tile));\n\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n\n if (this.settingsKey) {\n this.setUserConfig(this.config);\n }\n\n this.configChange.emit(this.config);\n }\n }\n\n /**\n * @internal\n */\n public getTileComponentType(\n layoutTile: SkyTileDashboardConfigLayoutTile\n ): any {\n if (layoutTile) {\n for (const tile of this.config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * @internal\n */\n public changeColumnMode(isSingleColumn: boolean) {\n /*istanbul ignore else */\n if (this.config) {\n if (isSingleColumn) {\n this.moveTilesToSingleColumn();\n } else {\n this.moveTilesToMultiColumn();\n }\n }\n }\n\n /**\n * @internal\n */\n public getTileComponent(tileId: string): ComponentRef<any> {\n for (const tileComponent of this.tileComponents) {\n if (\n tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId\n ) {\n return tileComponent;\n }\n }\n\n /*istanbul ignore next */\n return undefined;\n }\n\n /**\n * @internal\n */\n public destroy() {\n /*istanbul ignore else */\n if (this.mediaSubscription) {\n this.mediaSubscription.unsubscribe();\n }\n }\n\n /**\n * @internal\n */\n public moveTileOnKeyDown(\n tileCmp: SkyTileComponent,\n direction: string,\n tileDescription: string\n ) {\n const isSingleColumnMode =\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm;\n\n const tileId = this.getTileId(tileCmp);\n const tile = this.findTile(tileId);\n\n let column: SkyTileDashboardConfigLayoutColumn;\n let colIndex: number;\n if (isSingleColumnMode) {\n column = this.config.layout.singleColumn;\n } else {\n column = this.findTileColumn(tileId);\n colIndex = this.config.layout.multiColumn.findIndex(\n (value) => value === column\n );\n }\n\n if (\n (direction === 'left' || direction === 'right') &&\n !isSingleColumnMode\n ) {\n const operator = direction === 'left' ? -1 : 1;\n const newColumn = this.config.layout.multiColumn[colIndex + operator];\n\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.moveTilesToColumn(this.columns.toArray()[colIndex + operator], [\n tile,\n ]);\n\n // Report the change in configuration\n const reportConfig = this.config;\n reportConfig.movedTile = {\n tileDescription:\n tileDescription || /* istanbul ignore next */ tile.id,\n column: colIndex + operator + 1,\n position: newColumn.tiles.length,\n };\n this.configChange.emit(reportConfig);\n }\n } else {\n const operator = direction === 'up' ? -1 : 1;\n const curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n const tileComponentInstance = this.getTileComponent(tileId);\n\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n const temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n\n // Get the column element\n let columnEl: Element;\n if (isSingleColumnMode) {\n columnEl = this.getColumnEl(this.singleColumn);\n } else {\n columnEl = this.getColumnEl(this.columns.toArray()[colIndex]);\n }\n\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n columnEl.appendChild(tileComponentInstance.location.nativeElement);\n } else {\n columnEl.insertBefore(\n tileComponentInstance.location.nativeElement,\n this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n .location.nativeElement\n );\n }\n\n // Report the change in configuration\n const reportConfig = this.config;\n reportConfig.movedTile = {\n tileDescription:\n tileDescription || /* istanbul ignore next */ tile.id,\n column: isSingleColumnMode ? undefined : colIndex + 1,\n position: curIndex + operator + 1,\n };\n this.configChange.emit(reportConfig);\n }\n }\n }\n\n private getTileId(tile: SkyTileComponent): string {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId: string;\n\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n\n if (tileId) {\n return tileId;\n }\n\n el = el.parentElement;\n }\n }\n\n return undefined;\n }\n\n private getTileOrRemoveFromLayout(\n layoutTile: SkyTileDashboardConfigLayoutTile\n ): SkyTileDashboardConfigTile {\n /*istanbul ignore else */\n if (layoutTile) {\n for (const tile of this.config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n /*istanbul ignore else */\n if (this.config.layout.singleColumn) {\n this.config.layout.singleColumn.tiles =\n this.config.layout.singleColumn.tiles.filter(\n (elem) => elem.id !== layoutTile.id\n );\n }\n\n /*istanbul ignore else */\n if (this.config.layout.multiColumn) {\n this.config.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n }\n\n /*istanbul ignore next */\n return undefined;\n }\n\n private checkReadyAndLoadTiles() {\n if (this.config && this.columns) {\n this.loadTiles();\n this.initMediaQueries();\n this.dashboardInitialized.emit();\n }\n }\n\n private loadTiles() {\n const layout = this.config.layout;\n\n if (\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n ) {\n for (const tile of layout.singleColumn.tiles) {\n this.loadTileIntoColumn(this.singleColumn, tile);\n }\n } else {\n const columns = this.columns.toArray();\n\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n const column = columns[i];\n\n for (const tile of layout.multiColumn[i].tiles) {\n this.loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n\n private loadTileIntoColumn(\n column: SkyTileDashboardColumnComponent,\n layoutTile: SkyTileDashboardConfigLayoutTile\n ) {\n const tile = this.getTileOrRemoveFromLayout(layoutTile);\n\n /*istanbul ignore else */\n if (tile) {\n const componentType = tile.componentType;\n const providers = tile.providers /* istanbul ignore next */ || [];\n\n const injector = Injector.create({\n providers,\n parent: column.injector,\n });\n\n const factory = column.resolver.resolveComponentFactory(componentType);\n const componentRef = column.content.createComponent(\n factory,\n undefined,\n injector\n );\n\n this.addTileComponent(layoutTile, componentRef);\n\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n\n private moveTilesToSingleColumn() {\n this.moveTilesToColumn(\n this.singleColumn,\n this.config.layout.singleColumn.tiles\n );\n }\n\n private moveTilesToMultiColumn() {\n const layoutColumns = this.config.layout.multiColumn;\n const columns = this.columns.toArray();\n\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n\n private moveTilesToColumn(\n column: SkyTileDashboardColumnComponent,\n layoutTiles: SkyTileDashboardConfigLayoutTile[]\n ) {\n const columnEl = this.getColumnEl(column);\n\n for (const layoutTile of layoutTiles) {\n const tileComponentInstance = this.getTileComponent(layoutTile.id);\n\n /*istanbul ignore else */\n if (tileComponentInstance) {\n columnEl.appendChild(tileComponentInstance.location.nativeElement);\n }\n }\n }\n\n private getConfigForUIState(): SkyTileDashboardConfig {\n /*istanbul ignore else */\n if (this.config) {\n this.config = {\n tiles: this.config.tiles,\n layout: {\n singleColumn: this.getSingleColumnLayoutForUIState(),\n multiColumn: this.getMultiColumnLayoutForUIState(),\n },\n };\n }\n\n return this.config;\n }\n\n private getSingleColumnLayoutForUIState(): SkyTileDashboardConfigLayoutColumn {\n if (\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n ) {\n return {\n tiles: this.getTilesInEl(this.getColumnEl(this.singleColumn)),\n };\n }\n\n return this.config.layout.singleColumn;\n }\n\n private getMultiColumnLayoutForUIState(): SkyTileDashboardConfigLayoutColumn[] {\n if (\n !(\n this.mediaQuery.current === SkyMediaBreakpoints.xs ||\n this.mediaQuery.current === SkyMediaBreakpoints.sm\n )\n ) {\n const layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n const columns = this.columns.toArray();\n\n for (const column of columns) {\n if (column !== this.singleColumn) {\n const layoutColumn: SkyTileDashboardConfigLayoutColumn = {\n tiles: this.getTilesInEl(this.getColumnEl(column)),\n };\n\n layoutColumns.push(layoutColumn);\n }\n }\n\n return layoutColumns;\n }\n\n return this.config.layout.multiColumn;\n }\n\n private getTilesInEl(el: Element): SkyTileDashboardConfigLayoutTile[] {\n const tileEls: any = el.querySelectorAll('[' + ATTR_TILE_ID + ']');\n const layoutTiles: SkyTileDashboardConfigLayoutTile[] = [];\n\n /*istanbul ignore else */\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n const tileEl = tileEls[i];\n const tileId = tileEl.getAttribute(ATTR_TILE_ID);\n const tile = this.findTile(tileId);\n\n /*istanbul ignore else */\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n\n return layoutTiles;\n }\n\n private initMediaQueries() {\n /*istanbul ignore else */\n if (!this.mediaSubscription) {\n this.mediaSubscription = this.mediaQuery.subscribe(\n (args: SkyMediaBreakpoints) => {\n this.changeColumnMode(\n args === SkyMediaBreakpoints.xs || args === SkyMediaBreakpoints.sm\n );\n }\n );\n }\n }\n\n private initDragula() {\n this.dragulaService.setOptions(this.bagId, {\n moves: (el: HTMLElement, container: HTMLElement, handle: HTMLElement) => {\n const target = el.querySelector('.sky-tile-grab-handle');\n return target.contains(handle);\n },\n });\n\n this.dragulaService.drop.subscribe((value: any[]) => {\n const config = this.getConfigForUIState();\n\n /*istanbul ignore else */\n if (config) {\n if (this.settingsKey) {\n this.setUserConfig(config);\n }\n\n this.configChange.emit(config);\n }\n });\n }\n\n private getColumnEl(column: SkyTileDashboardColumnComponent): Element {\n return column.content.element.nativeElement.parentNode;\n }\n\n private findTile(tileId: string): SkyTileDashboardConfigLayoutTile {\n /*istanbul ignore else */\n if (this.config && this.config.layout.multiColumn) {\n for (const column of this.config.layout.multiColumn) {\n /*istanbul ignore else */\n if (column.tiles) {\n for (const tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n\n return undefined;\n }\n\n private findTileColumn(tileId: string): SkyTileDashboardConfigLayoutColumn {\n /*istanbul ignore else */\n if (this.config && this.config.layout.multiColumn) {\n return this.config.layout.multiColumn.find(\n (col) => col.tiles && !!col.tiles.find((tile) => tile.id === tileId)\n );\n }\n\n /*istanbul ignore next */\n return undefined;\n }\n\n private initToDefaults(\n config: SkyTileDashboardConfig,\n columns: QueryList<SkyTileDashboardColumnComponent>,\n singleColumn: SkyTileDashboardColumnComponent\n ) {\n this.config = config;\n this.columns = columns;\n this.singleColumn = singleColumn;\n this.checkReadyAndLoadTiles();\n }\n\n private setUserConfig(config: SkyTileDashboardConfig) {\n this.uiConfigService\n .setConfig(this.settingsKey, {\n layout: this.config.layout,\n persisted: true,\n tileIds: this.defaultConfig.tiles.map((elem) => elem.id),\n })\n .subscribe(\n () => {},\n (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n }\n );\n }\n\n private checkForNewTiles(oldUserTiles: string[]) {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n const newTiles = this.config.tiles.filter((elem) => {\n return oldUserTiles.indexOf(elem.id) === -1;\n });\n\n const { multiColumn, singleColumn } = this.config.layout;\n\n // Append new tiles to the end of the layouts\n /*istanbul ignore else */\n if (newTiles.length > 0) {\n /*istanbul ignore else */\n if (multiColumn) {\n newTiles.forEach((elem) => {\n let locationToAdd = 0;\n let smallest = multiColumn[0].tiles.length;\n multiColumn.forEach((item, index) => {\n if (item.tiles.length < smallest) {\n locationToAdd = index;\n smallest = item.tiles.length;\n }\n });\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n\n /*istanbul ignore else */\n if (singleColumn) {\n newTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n }\n\n /*istanbul ignore else */\n if (singleColumn) {\n for (const tile of singleColumn.tiles) {\n this.getTileOrRemoveFromLayout(tile);\n }\n }\n\n /*istanbul ignore else */\n if (multiColumn) {\n for (let i = 0, n = multiColumn.length; i < n; i++) {\n for (const tile of multiColumn[i].tiles) {\n this.getTileOrRemoveFromLayout(tile);\n }\n }\n }\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { NgModule } from '@angular/core';
2
1
  import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
3
  import { DragulaModule } from 'ng2-dragula';
4
4
  import { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';
5
5
  import * as i0 from "@angular/core";
@@ -1 +1 @@
1
- {"version":3,"file":"tile-dashboard-column.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;;AAOpF,MAAM,OAAO,4BAA4B;;0HAA5B,4BAA4B;2HAA5B,4BAA4B,iBAJxB,+BAA+B,aACpC,YAAY,EAAE,aAAa,aAC3B,+BAA+B;2HAE9B,4BAA4B,YAH9B,CAAC,YAAY,EAAE,aAAa,CAAC;4FAG3B,4BAA4B;kBALxC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,+BAA+B,CAAC;oBAC/C,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,OAAO,EAAE,CAAC,+BAA+B,CAAC;iBAC3C","sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DragulaModule } from 'ng2-dragula';\n\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\n\n@NgModule({\n declarations: [SkyTileDashboardColumnComponent],\n imports: [CommonModule, DragulaModule],\n exports: [SkyTileDashboardColumnComponent],\n})\nexport class SkyTileDashboardColumnModule {}\n"]}
1
+ {"version":3,"file":"tile-dashboard-column.module.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;;AAOpF,MAAM,OAAO,4BAA4B;;0HAA5B,4BAA4B;2HAA5B,4BAA4B,iBAJxB,+BAA+B,aACpC,YAAY,EAAE,aAAa,aAC3B,+BAA+B;2HAE9B,4BAA4B,YAH9B,CAAC,YAAY,EAAE,aAAa,CAAC;4FAG3B,4BAA4B;kBALxC,QAAQ;mBAAC;oBACR,YAAY,EAAE,CAAC,+BAA+B,CAAC;oBAC/C,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;oBACtC,OAAO,EAAE,CAAC,+BAA+B,CAAC;iBAC3C","sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { DragulaModule } from 'ng2-dragula';\n\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\n\n@NgModule({\n declarations: [SkyTileDashboardColumnComponent],\n imports: [CommonModule, DragulaModule],\n exports: [SkyTileDashboardColumnComponent],\n})\nexport class SkyTileDashboardColumnModule {}\n"]}