@skyux/tiles 5.5.0-alpha.0 → 5.6.0
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.
- package/bundles/skyux-tiles.umd.js +62 -62
- package/documentation.json +42 -42
- package/esm2015/lib/modules/shared/sky-tiles-resources.module.js +1 -1
- package/esm2015/lib/modules/shared/sky-tiles-resources.module.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile/tile.component.js +1 -1
- package/esm2015/lib/modules/tiles/tile/tile.component.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile/tile.module.js +3 -3
- package/esm2015/lib/modules/tiles/tile/tile.module.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile-content/tile-content.module.js +1 -1
- package/esm2015/lib/modules/tiles/tile-content/tile-content.module.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.component.js +4 -4
- package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.component.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.module.js +3 -3
- package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.module.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.service.js +48 -48
- package/esm2015/lib/modules/tiles/tile-dashboard/tile-dashboard.service.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.js +1 -1
- package/esm2015/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.js.map +1 -1
- package/esm2015/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config.js.map +1 -1
- package/esm2015/lib/modules/tiles/tiles.module.js +2 -2
- package/esm2015/lib/modules/tiles/tiles.module.js.map +1 -1
- package/fesm2015/skyux-tiles.js +98 -98
- package/fesm2015/skyux-tiles.js.map +1 -1
- package/lib/modules/tiles/tile-dashboard/tile-dashboard.component.d.ts +4 -4
- package/lib/modules/tiles/tile-dashboard/tile-dashboard.service.d.ts +2 -2
- package/lib/modules/tiles/tile-dashboard-config/tile-dashboard-config.d.ts +1 -1
- package/package.json +19 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tile.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.ts","../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.html"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,YAAY,EACZ,KAAK,EAEL,QAAQ,EACR,MAAM,EACN,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;;;;;;;;AAEnF;;GAEG;AAOH,MAAM,OAAO,gBAAgB;IAsF3B,YACS,UAAsB,EACrB,cAAiC,EACrB,gBAAyC;QAFtD,eAAU,GAAV,UAAU,CAAY;QACrB,mBAAc,GAAd,cAAc,CAAmB;QACrB,qBAAgB,GAAhB,gBAAgB,CAAyB;QAxF/D;;;;WAIG;QAEI,iBAAY,GAAG,IAAI,CAAC;QAE3B;;;;WAIG;QAEI,aAAQ,GAAG,IAAI,CAAC;QAQvB;;;WAGG;QAEI,kBAAa,GAAG,IAAI,YAAY,EAAE,CAAC;QAE1C;;;WAGG;QAEI,sBAAiB,GAAG,IAAI,YAAY,EAAW,CAAC;QAEvD;;;WAGG;QAEI,cAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QA0B/B,wBAAmB,GAAG,KAAK,CAAC;QAc3B,kBAAa,GAAG,IAAI,OAAO,EAAE,CAAC;QAE9B,iBAAY,GAAG,KAAK,CAAC;QAO3B,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,gBAAgB,CAAC;QAE9C,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB;;;;eAIG;YACH,IAAI,CAAC,gBAAgB,CAAC,YAAY;iBAC/B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;iBACnC,SAAS,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACrC,CAAC,CAAC,CAAC;SACN;IACH,CAAC;IA7DD,IAAW,WAAW;QACpB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACzE,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAC;SAC1C;QAED,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,IACW,WAAW,CAAC,KAAc;QACnC,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACrD;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAyCM,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAEM,qBAAqB;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,CAAC;IAEM,iBAAiB;QACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;IACtE,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC;IAC9D,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;IACvC,CAAC;IAEM,sBAAsB,CAAC,SAAiB;QAC7C,IAAI,CAAC,WAAW,GAAG,SAAS,KAAK,MAAM,CAAC;IAC1C,CAAC;IAEM,QAAQ,CAAC,KAAoB;QAClC,0BAA0B;QAC1B,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7D,0BAA0B;YAC1B,IACE,SAAS,KAAK,IAAI;gBAClB,SAAS,KAAK,MAAM;gBACpB,SAAS,KAAK,MAAM;gBACpB,SAAS,KAAK,OAAO,EACrB;gBACA,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CACrC,IAAI,EACJ,SAAS,EACT,IAAI,CAAC,KAAK;oBACR,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,SAAS;oBACpC,CAAC,CAAC,0BAA0B;wBAC1B,SAAS,CACd,CAAC;gBACF,IAAI,CAAC,WAAW,EAAE,CAAC;aACpB;SACF;IACH,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;;8GAlKU,gBAAgB;kGAAhB,gBAAgB,oWAuEnB,UAAU,kGAMV,UAAU,6BC3GpB,i+HAyHA,oiJD7Fc,CAAC,iBAAiB,CAAC;4FAEpB,gBAAgB;kBAN5B,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,SAAS,EAAE,CAAC,uBAAuB,CAAC;oBACpC,WAAW,EAAE,uBAAuB;oBACpC,UAAU,EAAE,CAAC,iBAAiB,CAAC;iBAChC;;0BA0FI,QAAQ;4CAlFJ,YAAY;sBADlB,KAAK;gBASC,QAAQ;sBADd,KAAK;gBAOC,QAAQ;sBADd,KAAK;gBAQC,aAAa;sBADnB,MAAM;gBAQA,iBAAiB;sBADvB,MAAM;gBAQA,SAAS;sBADf,MAAM;gBAiBI,WAAW;sBADrB,KAAK;gBAiBE,UAAU;sBAJjB,SAAS;uBAAC,YAAY,EAAE;wBACvB,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,KAAK;qBACd;gBAOO,KAAK;sBAJZ,SAAS;uBAAC,gBAAgB,EAAE;wBAC3B,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,KAAK;qBACd","sourcesContent":["import { AnimationEvent } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n} from '@angular/core';\n\nimport { skyAnimationSlide } from '@skyux/animations';\n\nimport { Subject } from 'rxjs';\n\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\n\n/**\n * Provides a common look-and-feel for tab content.\n */\n@Component({\n selector: 'sky-tile',\n styleUrls: ['./tile.component.scss'],\n templateUrl: './tile.component.html',\n animations: [skyAnimationSlide],\n})\nexport class SkyTileComponent implements OnDestroy {\n /**\n * Indicates whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n @Input()\n public showSettings = true;\n\n /**\n * Indicates whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n */\n @Input()\n public showHelp = true;\n\n /**\n * Specifies a human-readable name for the tile that is available for multiple purposes, such as accessibility and instrumentation. For example, the component uses the name to construct ARIA labels for tile controls to [support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n */\n @Input()\n public tileName;\n\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n @Output()\n public settingsClick = new EventEmitter();\n\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n */\n @Output()\n public helpClick = new EventEmitter();\n\n public get isCollapsed(): boolean {\n if (this.dashboardService) {\n const configCollapsedState = this.dashboardService.tileIsCollapsed(this);\n this._isCollapsed = configCollapsedState;\n }\n\n return this._isCollapsed;\n }\n\n /**\n * Indicates whether the tile is in a collapsed state.\n * @default false\n */\n @Input()\n public set isCollapsed(value: boolean) {\n if (this.dashboardService) {\n this.dashboardService.setTileCollapsed(this, value);\n }\n\n this._isCollapsed = value;\n\n this.isCollapsedChange.emit(value);\n }\n\n public isInDashboardColumn = false;\n\n @ViewChild('grabHandle', {\n read: ElementRef,\n static: false,\n })\n private grabHandle: ElementRef;\n\n @ViewChild('titleContainer', {\n read: ElementRef,\n static: false,\n })\n private title: ElementRef;\n\n private ngUnsubscribe = new Subject();\n\n private _isCollapsed = false;\n\n constructor(\n public elementRef: ElementRef,\n private changeDetector: ChangeDetectorRef,\n @Optional() private dashboardService: SkyTileDashboardService\n ) {\n this.isInDashboardColumn = !!dashboardService;\n\n if (this.dashboardService) {\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.dashboardService.configChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public settingsButtonClicked(): void {\n this.settingsClick.emit(undefined);\n }\n\n public helpButtonClicked(): void {\n this.helpClick.emit(undefined);\n }\n\n public get hasSettings(): boolean {\n return this.settingsClick.observers.length > 0 && this.showSettings;\n }\n\n public get hasHelp(): boolean {\n return this.helpClick.observers.length > 0 && this.showHelp;\n }\n\n public titleClick(): void {\n this.isCollapsed = !this.isCollapsed;\n }\n\n public chevronDirectionChange(direction: string): void {\n this.isCollapsed = direction === 'down';\n }\n\n public moveTile(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (this.isInDashboardColumn) {\n let direction = event.key.toLowerCase().replace('arrow', '');\n /* istanbul ignore else */\n if (\n direction === 'up' ||\n direction === 'down' ||\n direction === 'left' ||\n direction === 'right'\n ) {\n this.dashboardService.moveTileOnKeyDown(\n this,\n direction,\n this.title\n ? this.title.nativeElement.innerText\n : /* istanbul ignore next */\n undefined\n );\n this.focusHandle();\n }\n }\n }\n\n private focusHandle(): void {\n this.grabHandle.nativeElement.focus();\n }\n}\n","<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\"></ng-content>\n </div>\n <div\n class=\"sky-tile-summary\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern',\n 'sky-headline': 'default'\n }\"\n >\n <ng-content select=\"sky-tile-summary\"></ng-content>\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n </ng-container>\n <sky-chevron\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"cog\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"cog-line\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"\n dashboardService?.bagId + '-move-instructions'\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"th\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"tile-drag\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\"></ng-content>\n </div>\n</section>\n"]}
|
|
1
|
+
{"version":3,"file":"tile.component.js","sourceRoot":"","sources":["../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.ts","../../../../../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.html"],"names":[],"mappings":"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","sourcesContent":["import { AnimationEvent } from '@angular/animations';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { skyAnimationSlide } from '@skyux/animations';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\n\n/**\n * Provides a common look-and-feel for tab content.\n */\n@Component({\n selector: 'sky-tile',\n styleUrls: ['./tile.component.scss'],\n templateUrl: './tile.component.html',\n animations: [skyAnimationSlide],\n})\nexport class SkyTileComponent implements OnDestroy {\n /**\n * Indicates whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n @Input()\n public showSettings = true;\n\n /**\n * Indicates whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n */\n @Input()\n public showHelp = true;\n\n /**\n * Specifies a human-readable name for the tile that is available for multiple purposes, such as accessibility and instrumentation. For example, the component uses the name to construct ARIA labels for tile controls to [support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n */\n @Input()\n public tileName;\n\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n @Output()\n public settingsClick = new EventEmitter();\n\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n */\n @Output()\n public helpClick = new EventEmitter();\n\n public get isCollapsed(): boolean {\n if (this.dashboardService) {\n const configCollapsedState = this.dashboardService.tileIsCollapsed(this);\n this._isCollapsed = configCollapsedState;\n }\n\n return this._isCollapsed;\n }\n\n /**\n * Indicates whether the tile is in a collapsed state.\n * @default false\n */\n @Input()\n public set isCollapsed(value: boolean) {\n if (this.dashboardService) {\n this.dashboardService.setTileCollapsed(this, value);\n }\n\n this._isCollapsed = value;\n\n this.isCollapsedChange.emit(value);\n }\n\n public isInDashboardColumn = false;\n\n @ViewChild('grabHandle', {\n read: ElementRef,\n static: false,\n })\n private grabHandle: ElementRef;\n\n @ViewChild('titleContainer', {\n read: ElementRef,\n static: false,\n })\n private title: ElementRef;\n\n private ngUnsubscribe = new Subject();\n\n private _isCollapsed = false;\n\n constructor(\n public elementRef: ElementRef,\n private changeDetector: ChangeDetectorRef,\n @Optional() private dashboardService: SkyTileDashboardService\n ) {\n this.isInDashboardColumn = !!dashboardService;\n\n if (this.dashboardService) {\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.dashboardService.configChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe(() => {\n this.changeDetector.markForCheck();\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public settingsButtonClicked(): void {\n this.settingsClick.emit(undefined);\n }\n\n public helpButtonClicked(): void {\n this.helpClick.emit(undefined);\n }\n\n public get hasSettings(): boolean {\n return this.settingsClick.observers.length > 0 && this.showSettings;\n }\n\n public get hasHelp(): boolean {\n return this.helpClick.observers.length > 0 && this.showHelp;\n }\n\n public titleClick(): void {\n this.isCollapsed = !this.isCollapsed;\n }\n\n public chevronDirectionChange(direction: string): void {\n this.isCollapsed = direction === 'down';\n }\n\n public moveTile(event: KeyboardEvent): void {\n /* istanbul ignore else */\n if (this.isInDashboardColumn) {\n const direction = event.key.toLowerCase().replace('arrow', '');\n /* istanbul ignore else */\n if (\n direction === 'up' ||\n direction === 'down' ||\n direction === 'left' ||\n direction === 'right'\n ) {\n this.dashboardService.moveTileOnKeyDown(\n this,\n direction,\n this.title\n ? this.title.nativeElement.innerText\n : /* istanbul ignore next */\n undefined\n );\n this.focusHandle();\n }\n }\n }\n\n private focusHandle(): void {\n this.grabHandle.nativeElement.focus();\n }\n}\n","<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered sky-padding-even-xl': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick()\">\n <div class=\"sky-tile-header-title\" #titleContainer>\n <ng-content select=\"sky-tile-title\"></ng-content>\n </div>\n <div\n class=\"sky-tile-summary\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern',\n 'sky-headline': 'default'\n }\"\n >\n <ng-content select=\"sky-tile-summary\"></ng-content>\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n <button\n *ngIf=\"hasHelp\"\n class=\"sky-btn sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n </ng-container>\n <sky-chevron\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-margin-inline-default': 'modern'\n }\"\n (directionChange)=\"chevronDirectionChange($event)\"\n >\n </sky-chevron>\n <button\n *ngIf=\"hasSettings\"\n class=\"sky-btn sky-tile-settings\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless sky-margin-inline-default': 'modern'\n }\"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"cog\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"cog-line\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n <button\n *ngIf=\"isInDashboardColumn\"\n class=\"sky-btn sky-tile-grab-handle\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"\n dashboardService?.bagId + '-move-instructions'\n \"\n [skyThemeClass]=\"{\n 'sky-tile-tools-control': 'default',\n 'sky-btn-icon-borderless': 'modern'\n }\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n #grabHandle\n >\n <sky-icon *skyThemeIf=\"'default'\" icon=\"th\"></sky-icon>\n <sky-icon\n *skyThemeIf=\"'modern'\"\n icon=\"tile-drag\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </div>\n </div>\n </header>\n <div\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n #tileContent=\"skyId\"\n >\n <ng-content select=\"sky-tile-content\"></ng-content>\n </div>\n</section>\n"]}
|
|
@@ -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 {
|
|
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;
|
|
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,
|
|
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,
|
|
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. For more information\n * about the UI Config Service, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/get-started/advanced/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":"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","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,
|
|
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,
|
|
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
|
-
|
|
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 (
|
|
89
|
-
for (
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
173
|
-
|
|
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
|
-
|
|
186
|
-
|
|
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
|
-
|
|
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
|
-
|
|
206
|
-
|
|
207
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
285
|
+
const layout = this.config.layout;
|
|
286
286
|
if (this.mediaQuery.current === SkyMediaBreakpoints.xs ||
|
|
287
287
|
this.mediaQuery.current === SkyMediaBreakpoints.sm) {
|
|
288
|
-
for (
|
|
288
|
+
for (const tile of layout.singleColumn.tiles) {
|
|
289
289
|
this.loadTileIntoColumn(this.singleColumn, tile);
|
|
290
290
|
}
|
|
291
291
|
}
|
|
292
292
|
else {
|
|
293
|
-
|
|
293
|
+
const columns = this.columns.toArray();
|
|
294
294
|
for (let i = 0, n = layout.multiColumn.length; i < n; i++) {
|
|
295
|
-
|
|
296
|
-
for (
|
|
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
|
-
|
|
303
|
+
const tile = this.getTileOrRemoveFromLayout(layoutTile);
|
|
304
304
|
/*istanbul ignore else */
|
|
305
305
|
if (tile) {
|
|
306
|
-
|
|
307
|
-
|
|
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
|
-
|
|
325
|
-
|
|
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
|
-
|
|
332
|
-
for (
|
|
333
|
-
|
|
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
|
-
|
|
366
|
-
|
|
367
|
-
for (
|
|
365
|
+
const layoutColumns = [];
|
|
366
|
+
const columns = this.columns.toArray();
|
|
367
|
+
for (const column of columns) {
|
|
368
368
|
if (column !== this.singleColumn) {
|
|
369
|
-
|
|
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
|
-
|
|
381
|
-
|
|
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
|
-
|
|
386
|
-
|
|
387
|
-
|
|
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
|
-
|
|
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 (
|
|
428
|
+
for (const column of this.config.layout.multiColumn) {
|
|
429
429
|
/*istanbul ignore else */
|
|
430
430
|
if (column.tiles) {
|
|
431
|
-
for (
|
|
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
|
-
|
|
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 (
|
|
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 (
|
|
509
|
+
for (const tile of multiColumn[i].tiles) {
|
|
510
510
|
this.getTileOrRemoveFromLayout(tile);
|
|
511
511
|
}
|
|
512
512
|
}
|