@spicainternational/ngx-sds-components 2.7.2 → 5.0.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 (54) hide show
  1. package/esm2020/src/lib/app-switcher/app-switcher.component.mjs +17 -7
  2. package/esm2020/src/lib/app-switcher/app-switcher.module.mjs +9 -5
  3. package/esm2020/src/lib/avatar/avatar-group.component.mjs +12 -12
  4. package/esm2020/src/lib/avatar/avatar.module.mjs +9 -5
  5. package/esm2020/src/lib/color-picker/color-picker.component.mjs +7 -5
  6. package/esm2020/src/lib/color-picker/color-picker.module.mjs +5 -5
  7. package/esm2020/src/lib/date-picker/date-picker.component.mjs +3 -3
  8. package/esm2020/src/lib/date-pipes/date-format.pipe.mjs +1 -1
  9. package/esm2020/src/lib/date-pipes/date-period-format.pipe.mjs +1 -1
  10. package/esm2020/src/lib/date-pipes/date-pipes.module.mjs +1 -1
  11. package/esm2020/src/lib/modal/dialog/dialog.component.mjs +3 -3
  12. package/esm2020/src/lib/modal/modal.component.mjs +3 -3
  13. package/esm2020/src/lib/modal/modal.module.mjs +1 -1
  14. package/esm2020/src/lib/pane/pane.component.mjs +3 -3
  15. package/esm2020/src/lib/pane/pane.module.mjs +1 -1
  16. package/esm2020/src/lib/segmented-control/segmented-control.component.mjs +3 -3
  17. package/esm2020/src/lib/segmented-control/segmented-control.module.mjs +1 -1
  18. package/fesm2015/spicainternational-ngx-sds-components-src-lib-app-switcher.mjs +25 -10
  19. package/fesm2015/spicainternational-ngx-sds-components-src-lib-app-switcher.mjs.map +1 -1
  20. package/fesm2015/spicainternational-ngx-sds-components-src-lib-avatar.mjs +18 -15
  21. package/fesm2015/spicainternational-ngx-sds-components-src-lib-avatar.mjs.map +1 -1
  22. package/fesm2015/spicainternational-ngx-sds-components-src-lib-color-picker.mjs +10 -8
  23. package/fesm2015/spicainternational-ngx-sds-components-src-lib-color-picker.mjs.map +1 -1
  24. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +2 -2
  25. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  26. package/fesm2015/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs.map +1 -1
  27. package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs +4 -4
  28. package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  29. package/fesm2015/spicainternational-ngx-sds-components-src-lib-pane.mjs +2 -2
  30. package/fesm2015/spicainternational-ngx-sds-components-src-lib-pane.mjs.map +1 -1
  31. package/fesm2015/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs +2 -2
  32. package/fesm2015/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs.map +1 -1
  33. package/fesm2020/spicainternational-ngx-sds-components-src-lib-app-switcher.mjs +24 -10
  34. package/fesm2020/spicainternational-ngx-sds-components-src-lib-app-switcher.mjs.map +1 -1
  35. package/fesm2020/spicainternational-ngx-sds-components-src-lib-avatar.mjs +18 -14
  36. package/fesm2020/spicainternational-ngx-sds-components-src-lib-avatar.mjs.map +1 -1
  37. package/fesm2020/spicainternational-ngx-sds-components-src-lib-color-picker.mjs +10 -8
  38. package/fesm2020/spicainternational-ngx-sds-components-src-lib-color-picker.mjs.map +1 -1
  39. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs +2 -2
  40. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-picker.mjs.map +1 -1
  41. package/fesm2020/spicainternational-ngx-sds-components-src-lib-date-pipes.mjs.map +1 -1
  42. package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs +4 -4
  43. package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
  44. package/fesm2020/spicainternational-ngx-sds-components-src-lib-pane.mjs +2 -2
  45. package/fesm2020/spicainternational-ngx-sds-components-src-lib-pane.mjs.map +1 -1
  46. package/fesm2020/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs +2 -2
  47. package/fesm2020/spicainternational-ngx-sds-components-src-lib-segmented-control.mjs.map +1 -1
  48. package/package.json +4 -5
  49. package/src/lib/app-switcher/app-switcher.component.d.ts +4 -0
  50. package/src/lib/app-switcher/app-switcher.module.d.ts +3 -2
  51. package/src/lib/avatar/avatar-group.component.d.ts +3 -2
  52. package/src/lib/avatar/avatar.module.d.ts +3 -2
  53. package/src/lib/color-picker/color-picker.component.d.ts +2 -0
  54. package/src/lib/color-picker/color-picker.module.d.ts +2 -2
@@ -28,10 +28,10 @@ class SdsPaneComponent {
28
28
  }
29
29
  }
30
30
  SdsPaneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsPaneComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
- SdsPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsPaneComponent, selector: "sds-pane", inputs: { pages: "pages", selectedPage: "selectedPage", contentWidthRem: "contentWidthRem", product: "product" }, outputs: { pageChange: "pageChange" }, usesOnChanges: true, ngImport: i0, template: "<div \n class=\"pane border-left\"\n [class]=\"productCssClass\"\n >\n <div \n *ngIf=\"selectedPage\" \n class=\"pane-content\"\n [style.width.rem]=\"contentWidthRem\"\n >\n \n <div class=\"page-header\">\n <div class=\"title\">\n {{selectedPage?.title}}\n </div>\n\n <button \n class=\"btn btn-stealth ml-auto\"\n (click)=\"hideContent()\"\n >\n <fa-icon \n [icon]=\"closeIcon\" \n [fixedWidth]=\"true\"\n [size]=\"'sm'\"> \n </fa-icon> \n </button> \n\n </div>\n\n <div class=\"page-container\">\n <ng-container\n [ngTemplateOutlet]=\"selectedPage && selectedPage.contentTemplate ? selectedPage.contentTemplate : null\"\n >\n </ng-container> \n </div>\n </div>\n\n <div \n class=\"pane-header\"\n [class.border-left]=\"selectedPage\"\n >\n <ul>\n <li \n *ngFor=\"let page of pages\"\n [class.active] = \"selectedPage === page\"\n >\n <div \n class=\"icon-container\"\n [title]=\"page.title\"\n (click) = \"showContent(page)\"\n >\n <fa-icon \n [icon]=\"(selectedPage === page ? page.selectedIcon ? page.selectedIcon : page.icon : page.icon)\" \n [fixedWidth]=\"true\">\n </fa-icon>\n </div>\n </li>\n </ul>\n </div> \n</div>", styles: [""], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
31
+ SdsPaneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsPaneComponent, selector: "sds-pane", inputs: { pages: "pages", selectedPage: "selectedPage", contentWidthRem: "contentWidthRem", product: "product" }, outputs: { pageChange: "pageChange" }, usesOnChanges: true, ngImport: i0, template: "<div \r\n class=\"pane border-start\"\r\n [class]=\"productCssClass\"\r\n >\r\n <div \r\n *ngIf=\"selectedPage\" \r\n class=\"pane-content\"\r\n [style.width.rem]=\"contentWidthRem\"\r\n >\r\n \r\n <div class=\"page-header\">\r\n <div class=\"title\">\r\n {{selectedPage?.title}}\r\n </div>\r\n\r\n <button \r\n class=\"btn btn-stealth ms-auto\"\r\n (click)=\"hideContent()\"\r\n >\r\n <fa-icon \r\n [icon]=\"closeIcon\" \r\n [fixedWidth]=\"true\"\r\n [size]=\"'sm'\"> \r\n </fa-icon> \r\n </button> \r\n\r\n </div>\r\n\r\n <div class=\"page-container\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"selectedPage && selectedPage.contentTemplate ? selectedPage.contentTemplate : null\"\r\n >\r\n </ng-container> \r\n </div>\r\n </div>\r\n\r\n <div \r\n class=\"pane-header\"\r\n [class.border-start]=\"selectedPage\"\r\n >\r\n <ul>\r\n <li \r\n *ngFor=\"let page of pages\"\r\n [class.active] = \"selectedPage === page\"\r\n >\r\n <div \r\n class=\"icon-container\"\r\n [title]=\"page.title\"\r\n (click) = \"showContent(page)\"\r\n >\r\n <fa-icon \r\n [icon]=\"(selectedPage === page ? page.selectedIcon ? page.selectedIcon : page.icon : page.icon)\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </div>\r\n </li>\r\n </ul>\r\n </div> \r\n</div>", styles: [""], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsPaneComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'sds-pane', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \n class=\"pane border-left\"\n [class]=\"productCssClass\"\n >\n <div \n *ngIf=\"selectedPage\" \n class=\"pane-content\"\n [style.width.rem]=\"contentWidthRem\"\n >\n \n <div class=\"page-header\">\n <div class=\"title\">\n {{selectedPage?.title}}\n </div>\n\n <button \n class=\"btn btn-stealth ml-auto\"\n (click)=\"hideContent()\"\n >\n <fa-icon \n [icon]=\"closeIcon\" \n [fixedWidth]=\"true\"\n [size]=\"'sm'\"> \n </fa-icon> \n </button> \n\n </div>\n\n <div class=\"page-container\">\n <ng-container\n [ngTemplateOutlet]=\"selectedPage && selectedPage.contentTemplate ? selectedPage.contentTemplate : null\"\n >\n </ng-container> \n </div>\n </div>\n\n <div \n class=\"pane-header\"\n [class.border-left]=\"selectedPage\"\n >\n <ul>\n <li \n *ngFor=\"let page of pages\"\n [class.active] = \"selectedPage === page\"\n >\n <div \n class=\"icon-container\"\n [title]=\"page.title\"\n (click) = \"showContent(page)\"\n >\n <fa-icon \n [icon]=\"(selectedPage === page ? page.selectedIcon ? page.selectedIcon : page.icon : page.icon)\" \n [fixedWidth]=\"true\">\n </fa-icon>\n </div>\n </li>\n </ul>\n </div> \n</div>", styles: [""] }]
34
+ args: [{ selector: 'sds-pane', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \r\n class=\"pane border-start\"\r\n [class]=\"productCssClass\"\r\n >\r\n <div \r\n *ngIf=\"selectedPage\" \r\n class=\"pane-content\"\r\n [style.width.rem]=\"contentWidthRem\"\r\n >\r\n \r\n <div class=\"page-header\">\r\n <div class=\"title\">\r\n {{selectedPage?.title}}\r\n </div>\r\n\r\n <button \r\n class=\"btn btn-stealth ms-auto\"\r\n (click)=\"hideContent()\"\r\n >\r\n <fa-icon \r\n [icon]=\"closeIcon\" \r\n [fixedWidth]=\"true\"\r\n [size]=\"'sm'\"> \r\n </fa-icon> \r\n </button> \r\n\r\n </div>\r\n\r\n <div class=\"page-container\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"selectedPage && selectedPage.contentTemplate ? selectedPage.contentTemplate : null\"\r\n >\r\n </ng-container> \r\n </div>\r\n </div>\r\n\r\n <div \r\n class=\"pane-header\"\r\n [class.border-start]=\"selectedPage\"\r\n >\r\n <ul>\r\n <li \r\n *ngFor=\"let page of pages\"\r\n [class.active] = \"selectedPage === page\"\r\n >\r\n <div \r\n class=\"icon-container\"\r\n [title]=\"page.title\"\r\n (click) = \"showContent(page)\"\r\n >\r\n <fa-icon \r\n [icon]=\"(selectedPage === page ? page.selectedIcon ? page.selectedIcon : page.icon : page.icon)\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </div>\r\n </li>\r\n </ul>\r\n </div> \r\n</div>", styles: [""] }]
35
35
  }], ctorParameters: function () { return []; }, propDecorators: { pages: [{
36
36
  type: Input
37
37
  }], selectedPage: [{
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-pane.mjs","sources":["../../../projects/ngx-sds-components/src/lib/pane/pane.component.ts","../../../projects/ngx-sds-components/src/lib/pane/pane.component.html","../../../projects/ngx-sds-components/src/lib/pane/pane.module.ts","../../../projects/ngx-sds-components/src/lib/pane/spicainternational-ngx-sds-components-src-lib-pane.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { PanePage } from './pane.model';\n\nimport { faXmark } from '@fortawesome/pro-regular-svg-icons';\nimport { isThisSecond } from 'date-fns';\n\n@Component({\n selector: 'sds-pane',\n templateUrl: './pane.component.html',\n styleUrls: ['./pane.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SdsPaneComponent implements OnInit, OnChanges {\n\n @Input() public pages?: PanePage[];\n @Input() public selectedPage?: PanePage;\n @Input() public contentWidthRem: number = 20;\n @Input() public product?: 'all-hours' | 'my-hours' | 'door-cloud' | 'time-and-space' | string;\n \n @Output() pageChange = new EventEmitter();\n\n public closeIcon = faXmark;\n\n public productCssClass?: string;\n\n constructor() {}\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['product']) {\n this.productCssClass = this.product ? `product-${this.product}` : undefined; \n }\n }\n\n ngOnInit(): void {}\n\n public showContent(page: PanePage): void{\n this.selectedPage = page;\n this.pageChange.emit(this.selectedPage);\n }\n\n public hideContent(): void{\n this.selectedPage = undefined;\n this.pageChange.emit(this.selectedPage);\n }\n\n\n}\n","<div \n class=\"pane border-left\"\n [class]=\"productCssClass\"\n >\n <div \n *ngIf=\"selectedPage\" \n class=\"pane-content\"\n [style.width.rem]=\"contentWidthRem\"\n >\n \n <div class=\"page-header\">\n <div class=\"title\">\n {{selectedPage?.title}}\n </div>\n\n <button \n class=\"btn btn-stealth ml-auto\"\n (click)=\"hideContent()\"\n >\n <fa-icon \n [icon]=\"closeIcon\" \n [fixedWidth]=\"true\"\n [size]=\"'sm'\"> \n </fa-icon> \n </button> \n\n </div>\n\n <div class=\"page-container\">\n <ng-container\n [ngTemplateOutlet]=\"selectedPage && selectedPage.contentTemplate ? selectedPage.contentTemplate : null\"\n >\n </ng-container> \n </div>\n </div>\n\n <div \n class=\"pane-header\"\n [class.border-left]=\"selectedPage\"\n >\n <ul>\n <li \n *ngFor=\"let page of pages\"\n [class.active] = \"selectedPage === page\"\n >\n <div \n class=\"icon-container\"\n [title]=\"page.title\"\n (click) = \"showContent(page)\"\n >\n <fa-icon \n [icon]=\"(selectedPage === page ? page.selectedIcon ? page.selectedIcon : page.icon : page.icon)\" \n [fixedWidth]=\"true\">\n </fa-icon>\n </div>\n </li>\n </ul>\n </div> \n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SdsPaneComponent } from '../pane/pane.component';\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\n\n@NgModule({\n declarations: [\n SdsPaneComponent\n ],\n imports: [\n CommonModule, \n FontAwesomeModule\n ],\n exports: [\n SdsPaneComponent\n ],\n})\nexport class SdsPaneModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-pane.mjs","sources":["../../../projects/ngx-sds-components/src/lib/pane/pane.component.ts","../../../projects/ngx-sds-components/src/lib/pane/pane.component.html","../../../projects/ngx-sds-components/src/lib/pane/pane.module.ts","../../../projects/ngx-sds-components/src/lib/pane/spicainternational-ngx-sds-components-src-lib-pane.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { PanePage } from './pane.model';\r\n\r\nimport { faXmark } from '@fortawesome/pro-regular-svg-icons';\r\nimport { isThisSecond } from 'date-fns';\r\n\r\n@Component({\r\n selector: 'sds-pane',\r\n templateUrl: './pane.component.html',\r\n styleUrls: ['./pane.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsPaneComponent implements OnInit, OnChanges {\r\n\r\n @Input() public pages?: PanePage[];\r\n @Input() public selectedPage?: PanePage;\r\n @Input() public contentWidthRem: number = 20;\r\n @Input() public product?: 'all-hours' | 'my-hours' | 'door-cloud' | 'time-and-space' | string;\r\n \r\n @Output() pageChange = new EventEmitter();\r\n\r\n public closeIcon = faXmark;\r\n\r\n public productCssClass?: string;\r\n\r\n constructor() {}\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['product']) {\r\n this.productCssClass = this.product ? `product-${this.product}` : undefined; \r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public showContent(page: PanePage): void{\r\n this.selectedPage = page;\r\n this.pageChange.emit(this.selectedPage);\r\n }\r\n\r\n public hideContent(): void{\r\n this.selectedPage = undefined;\r\n this.pageChange.emit(this.selectedPage);\r\n }\r\n\r\n\r\n}\r\n","<div \r\n class=\"pane border-start\"\r\n [class]=\"productCssClass\"\r\n >\r\n <div \r\n *ngIf=\"selectedPage\" \r\n class=\"pane-content\"\r\n [style.width.rem]=\"contentWidthRem\"\r\n >\r\n \r\n <div class=\"page-header\">\r\n <div class=\"title\">\r\n {{selectedPage?.title}}\r\n </div>\r\n\r\n <button \r\n class=\"btn btn-stealth ms-auto\"\r\n (click)=\"hideContent()\"\r\n >\r\n <fa-icon \r\n [icon]=\"closeIcon\" \r\n [fixedWidth]=\"true\"\r\n [size]=\"'sm'\"> \r\n </fa-icon> \r\n </button> \r\n\r\n </div>\r\n\r\n <div class=\"page-container\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"selectedPage && selectedPage.contentTemplate ? selectedPage.contentTemplate : null\"\r\n >\r\n </ng-container> \r\n </div>\r\n </div>\r\n\r\n <div \r\n class=\"pane-header\"\r\n [class.border-start]=\"selectedPage\"\r\n >\r\n <ul>\r\n <li \r\n *ngFor=\"let page of pages\"\r\n [class.active] = \"selectedPage === page\"\r\n >\r\n <div \r\n class=\"icon-container\"\r\n [title]=\"page.title\"\r\n (click) = \"showContent(page)\"\r\n >\r\n <fa-icon \r\n [icon]=\"(selectedPage === page ? page.selectedIcon ? page.selectedIcon : page.icon : page.icon)\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </div>\r\n </li>\r\n </ul>\r\n </div> \r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsPaneComponent } from '../pane/pane.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdsPaneComponent\r\n ],\r\n imports: [\r\n CommonModule, \r\n FontAwesomeModule\r\n ],\r\n exports: [\r\n SdsPaneComponent\r\n ],\r\n})\r\nexport class SdsPaneModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -19,10 +19,10 @@ class SdsSegmentedControlComponent {
19
19
  }
20
20
  }
21
21
  SdsSegmentedControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsSegmentedControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
- SdsSegmentedControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsSegmentedControlComponent, selector: "sds-segmented-control", inputs: { items: "items", value: "value", valueExpr: "valueExpr", displayExpr: "displayExpr", tooltipExpr: "tooltipExpr", idExpr: "idExpr", disabled: "disabled" }, outputs: { itemChange: "itemChange", valueChange: "valueChange" }, ngImport: i0, template: "<div \n class=\"sds-segmented-control-container\" \n [class.disabled]=\"disabled\">\n <div *ngFor=\"let item of items let last = last;\" \n class=\"segment\" \n id=\"{{idExpr ? item[idExpr]: ''}}\"\n [class.selected]=\"item[valueExpr] == value\"\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\n (click)=\"itemSelected(item)\">\n\n <div>\n <i *ngIf=\"item.icon\" class=\"{{item.icon}} mr-2\"></i>\n <span>{{item[displayExpr]}}</span>\n </div>\n </div>\n</div>", styles: [""], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
+ SdsSegmentedControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsSegmentedControlComponent, selector: "sds-segmented-control", inputs: { items: "items", value: "value", valueExpr: "valueExpr", displayExpr: "displayExpr", tooltipExpr: "tooltipExpr", idExpr: "idExpr", disabled: "disabled" }, outputs: { itemChange: "itemChange", valueChange: "valueChange" }, ngImport: i0, template: "<div \r\n class=\"sds-segmented-control-container\" \r\n [class.disabled]=\"disabled\">\r\n <div *ngFor=\"let item of items let last = last;\" \r\n class=\"segment\" \r\n id=\"{{idExpr ? item[idExpr]: ''}}\"\r\n [class.selected]=\"item[valueExpr] == value\"\r\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\r\n (click)=\"itemSelected(item)\">\r\n\r\n <div>\r\n <i *ngIf=\"item.icon\" class=\"{{item.icon}} me-2\"></i>\r\n <span>{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [""], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsSegmentedControlComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'sds-segmented-control', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \n class=\"sds-segmented-control-container\" \n [class.disabled]=\"disabled\">\n <div *ngFor=\"let item of items let last = last;\" \n class=\"segment\" \n id=\"{{idExpr ? item[idExpr]: ''}}\"\n [class.selected]=\"item[valueExpr] == value\"\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\n (click)=\"itemSelected(item)\">\n\n <div>\n <i *ngIf=\"item.icon\" class=\"{{item.icon}} mr-2\"></i>\n <span>{{item[displayExpr]}}</span>\n </div>\n </div>\n</div>", styles: [""] }]
25
+ args: [{ selector: 'sds-segmented-control', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div \r\n class=\"sds-segmented-control-container\" \r\n [class.disabled]=\"disabled\">\r\n <div *ngFor=\"let item of items let last = last;\" \r\n class=\"segment\" \r\n id=\"{{idExpr ? item[idExpr]: ''}}\"\r\n [class.selected]=\"item[valueExpr] == value\"\r\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\r\n (click)=\"itemSelected(item)\">\r\n\r\n <div>\r\n <i *ngIf=\"item.icon\" class=\"{{item.icon}} me-2\"></i>\r\n <span>{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n</div>", styles: [""] }]
26
26
  }], ctorParameters: function () { return []; }, propDecorators: { items: [{
27
27
  type: Input
28
28
  }], value: [{
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-segmented-control.mjs","sources":["../../../projects/ngx-sds-components/src/lib/segmented-control/segmented-control.component.ts","../../../projects/ngx-sds-components/src/lib/segmented-control/segmented-control.component.html","../../../projects/ngx-sds-components/src/lib/segmented-control/segmented-control.module.ts","../../../projects/ngx-sds-components/src/lib/segmented-control/spicainternational-ngx-sds-components-src-lib-segmented-control.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'sds-segmented-control',\n templateUrl: './segmented-control.component.html',\n styleUrls: ['./segmented-control.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SdsSegmentedControlComponent implements OnInit {\n\n @Input() items: any[] | undefined;\n @Input() value: any;\n @Input() valueExpr: string = \"value\";\n @Input() displayExpr: string = \"text\";\n @Input() tooltipExpr: string | undefined;\n @Input() idExpr: string | undefined;\n @Input() disabled: boolean = false;\n\n @Output() itemChange: EventEmitter<any> = new EventEmitter();\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n constructor() {}\n\n ngOnInit() {}\n\n public itemSelected(item: any): void {\n this.value = item[this.valueExpr];\n\n this.valueChange.emit(this.value);\n this.itemChange.emit(item);\n }\n\n}\n\n\n\n","<div \n class=\"sds-segmented-control-container\" \n [class.disabled]=\"disabled\">\n <div *ngFor=\"let item of items let last = last;\" \n class=\"segment\" \n id=\"{{idExpr ? item[idExpr]: ''}}\"\n [class.selected]=\"item[valueExpr] == value\"\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\n (click)=\"itemSelected(item)\">\n\n <div>\n <i *ngIf=\"item.icon\" class=\"{{item.icon}} mr-2\"></i>\n <span>{{item[displayExpr]}}</span>\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SdsSegmentedControlComponent } from './segmented-control.component';\n\n\nconst components = [SdsSegmentedControlComponent];\n@NgModule({\n declarations: [\n ...components\n ],\n imports: [\n CommonModule\n ],\n exports: [\n ...components\n]\n})\nexport class SdsSegmentedControlModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-segmented-control.mjs","sources":["../../../projects/ngx-sds-components/src/lib/segmented-control/segmented-control.component.ts","../../../projects/ngx-sds-components/src/lib/segmented-control/segmented-control.component.html","../../../projects/ngx-sds-components/src/lib/segmented-control/segmented-control.module.ts","../../../projects/ngx-sds-components/src/lib/segmented-control/spicainternational-ngx-sds-components-src-lib-segmented-control.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sds-segmented-control',\r\n templateUrl: './segmented-control.component.html',\r\n styleUrls: ['./segmented-control.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsSegmentedControlComponent implements OnInit {\r\n\r\n @Input() items: any[] | undefined;\r\n @Input() value: any;\r\n @Input() valueExpr: string = \"value\";\r\n @Input() displayExpr: string = \"text\";\r\n @Input() tooltipExpr: string | undefined;\r\n @Input() idExpr: string | undefined;\r\n @Input() disabled: boolean = false;\r\n\r\n @Output() itemChange: EventEmitter<any> = new EventEmitter();\r\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n public itemSelected(item: any): void {\r\n this.value = item[this.valueExpr];\r\n\r\n this.valueChange.emit(this.value);\r\n this.itemChange.emit(item);\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","<div \r\n class=\"sds-segmented-control-container\" \r\n [class.disabled]=\"disabled\">\r\n <div *ngFor=\"let item of items let last = last;\" \r\n class=\"segment\" \r\n id=\"{{idExpr ? item[idExpr]: ''}}\"\r\n [class.selected]=\"item[valueExpr] == value\"\r\n [title]=\"tooltipExpr && item[tooltipExpr] ? item[tooltipExpr] : ''\"\r\n (click)=\"itemSelected(item)\">\r\n\r\n <div>\r\n <i *ngIf=\"item.icon\" class=\"{{item.icon}} me-2\"></i>\r\n <span>{{item[displayExpr]}}</span>\r\n </div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsSegmentedControlComponent } from './segmented-control.component';\r\n\r\n\r\nconst components = [SdsSegmentedControlComponent];\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n ...components\r\n]\r\n})\r\nexport class SdsSegmentedControlModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
1
  import * as i0 from '@angular/core';
2
- import { EventEmitter, Component, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';
3
- import * as i3 from '@angular/common';
2
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewChild, Input, Output, NgModule } from '@angular/core';
3
+ import * as i4 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { faGrid } from '@fortawesome/pro-solid-svg-icons';
6
6
  import * as i1 from '@fortawesome/angular-fontawesome';
7
7
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
8
- import * as i2 from 'ngx-bootstrap/dropdown';
9
- import { BsDropdownModule } from 'ngx-bootstrap/dropdown';
8
+ import * as i2 from 'devextreme-angular/ui/popover';
9
+ import { DxPopoverModule } from 'devextreme-angular/ui/popover';
10
+ import * as i3 from 'devextreme-angular/ui/scroll-view';
11
+ import { DxScrollViewModule } from 'devextreme-angular/ui/scroll-view';
10
12
 
11
13
  class SdsAppSwitcherComponent {
12
14
  constructor() {
@@ -14,6 +16,8 @@ class SdsAppSwitcherComponent {
14
16
  this.discoverText = '';
15
17
  this.productClick = new EventEmitter();
16
18
  this.selectorIcon = faGrid;
19
+ this.elementUUID = 'sds-as-' + crypto.randomUUID();
20
+ this.showDropdown = false;
17
21
  this.showSkeleton = true;
18
22
  this.activatedProducts = new Array();
19
23
  this.discoverProducts = new Array();
@@ -40,18 +44,25 @@ class SdsAppSwitcherComponent {
40
44
  else {
41
45
  this.showSkeleton = true;
42
46
  }
47
+ this.popover?.instance.repaint();
43
48
  }
44
49
  }
45
50
  emitProductClick(product) {
46
51
  this.productClick.emit(product);
47
52
  }
53
+ onDropdownClicked() {
54
+ this.showDropdown = true;
55
+ }
48
56
  }
49
57
  SdsAppSwitcherComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAppSwitcherComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
- SdsAppSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsAppSwitcherComponent, selector: "sds-app-switcher", inputs: { productCode: "productCode", userProductCodes: "userProductCodes", tenantProducts: "tenantProducts", switchText: "switchText", discoverText: "discoverText" }, outputs: { productClick: "productClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-template #productTemplate let-product=\"product\">\r\n <div class=\"product-logo\">\r\n <img [src]=\"product.logoUri\" alt=\"{{ product.Name }}\">\r\n </div>\r\n <div class=\"product-title d-flex align-items-center\">\r\n {{product.name}}\r\n </div>\r\n <div class=\"product-description\">\r\n {{product.description}}\r\n </div>\r\n</ng-template>\r\n\r\n<div class=\"btn-group app-switcher\" dropdown>\r\n <!-- id=\"button-basic\" -->\r\n <button \r\n dropdownToggle \r\n type=\"button\" \r\n class=\"btn btn-link rounded p-0 text-dark\"\r\n aria-controls=\"dropdown-basic\">\r\n <fa-icon \r\n [icon]=\"selectorIcon\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </button>\r\n\r\n <div \r\n *dropdownMenu\r\n class=\"dropdown-menu\" \r\n role=\"menu\"\r\n aria-labelledby=\"app-switcher-button\">\r\n\r\n <ng-container *ngIf=\"showSkeleton\">\r\n <div class=\"dropdown-header skeleton skeleton-height-1 w-50 \"></div>\r\n <div class=\"dropdown-item product-container mt-2 skeleton skeleton-height-2\"></div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && activatedProducts.length > 0\">\r\n <h6 class=\"dropdown-header\">{{ switchText }}</h6>\r\n <a *ngFor=\"let activatedProduct of activatedProducts\" \r\n class=\"dropdown-item product-container\"\r\n (click)=\"emitProductClick(activatedProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: activatedProduct }\">\r\n </ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && discoverProducts.length > 0\">\r\n <h6 class=\"dropdown-header\">{{ discoverText }}</h6>\r\n\r\n <a *ngFor=\"let discoverProduct of discoverProducts\" \r\n class=\"dropdown-item product-container\"\r\n (click)=\"emitProductClick(discoverProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: discoverProduct }\">\r\n </ng-container>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n ", styles: [""], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }], directives: [{ type: i2.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { type: i2.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { type: i2.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
58
+ SdsAppSwitcherComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsAppSwitcherComponent, selector: "sds-app-switcher", inputs: { productCode: "productCode", userProductCodes: "userProductCodes", tenantProducts: "tenantProducts", switchText: "switchText", discoverText: "discoverText" }, outputs: { productClick: "productClick" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template #productTemplate let-product=\"product\">\r\n <div class=\"product-logo\">\r\n <img [src]=\"product.logoUri\" alt=\"{{ product.Name }}\">\r\n </div>\r\n <div class=\"product-title d-flex align-items-center\">\r\n {{product.name}}\r\n </div>\r\n <div class=\"product-description\">\r\n {{product.description}}\r\n </div>\r\n</ng-template>\r\n\r\n<div \r\n [id]=\"elementUUID\"\r\n class=\"btn-group app-switcher\">\r\n <button \r\n type=\"button\" \r\n class=\"btn btn-link rounded p-0 text-dark switcher-button\"\r\n aria-controls=\"dropdown-basic\"\r\n (click)=\"onDropdownClicked()\">\r\n <fa-icon \r\n [icon]=\"selectorIcon\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </button>\r\n</div>\r\n\r\n<dx-popover\r\n #popover\r\n target=\"#{{elementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view \r\n showScrollbar=\"always\">\r\n \r\n <div class=\"app-switcher-menu\">\r\n <ng-container *ngIf=\"showSkeleton\">\r\n <div class=\"header skeleton skeleton-height-1 w-50 \"></div>\r\n <div class=\"product mt-2 skeleton skeleton-height-2\"></div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && activatedProducts.length > 0\">\r\n <h6 class=\"header\">{{ switchText }}</h6>\r\n <div *ngFor=\"let activatedProduct of activatedProducts\" \r\n class=\"product\"\r\n (click)=\"emitProductClick(activatedProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: activatedProduct }\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && discoverProducts.length > 0\">\r\n <h6 class=\"header\">{{ discoverText }}</h6>\r\n\r\n <div *ngFor=\"let discoverProduct of discoverProducts\" \r\n class=\"product\"\r\n (click)=\"emitProductClick(discoverProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: discoverProduct }\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </dx-scroll-view>\r\n</dx-popover>\r\n\r\n ", styles: [""], components: [{ type: i1.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { type: i2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
51
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAppSwitcherComponent, decorators: [{
52
60
  type: Component,
53
- args: [{ selector: 'sds-app-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #productTemplate let-product=\"product\">\r\n <div class=\"product-logo\">\r\n <img [src]=\"product.logoUri\" alt=\"{{ product.Name }}\">\r\n </div>\r\n <div class=\"product-title d-flex align-items-center\">\r\n {{product.name}}\r\n </div>\r\n <div class=\"product-description\">\r\n {{product.description}}\r\n </div>\r\n</ng-template>\r\n\r\n<div class=\"btn-group app-switcher\" dropdown>\r\n <!-- id=\"button-basic\" -->\r\n <button \r\n dropdownToggle \r\n type=\"button\" \r\n class=\"btn btn-link rounded p-0 text-dark\"\r\n aria-controls=\"dropdown-basic\">\r\n <fa-icon \r\n [icon]=\"selectorIcon\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </button>\r\n\r\n <div \r\n *dropdownMenu\r\n class=\"dropdown-menu\" \r\n role=\"menu\"\r\n aria-labelledby=\"app-switcher-button\">\r\n\r\n <ng-container *ngIf=\"showSkeleton\">\r\n <div class=\"dropdown-header skeleton skeleton-height-1 w-50 \"></div>\r\n <div class=\"dropdown-item product-container mt-2 skeleton skeleton-height-2\"></div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && activatedProducts.length > 0\">\r\n <h6 class=\"dropdown-header\">{{ switchText }}</h6>\r\n <a *ngFor=\"let activatedProduct of activatedProducts\" \r\n class=\"dropdown-item product-container\"\r\n (click)=\"emitProductClick(activatedProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: activatedProduct }\">\r\n </ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && discoverProducts.length > 0\">\r\n <h6 class=\"dropdown-header\">{{ discoverText }}</h6>\r\n\r\n <a *ngFor=\"let discoverProduct of discoverProducts\" \r\n class=\"dropdown-item product-container\"\r\n (click)=\"emitProductClick(discoverProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: discoverProduct }\">\r\n </ng-container>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n ", styles: [""] }]
54
- }], ctorParameters: function () { return []; }, propDecorators: { productCode: [{
61
+ args: [{ selector: 'sds-app-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #productTemplate let-product=\"product\">\r\n <div class=\"product-logo\">\r\n <img [src]=\"product.logoUri\" alt=\"{{ product.Name }}\">\r\n </div>\r\n <div class=\"product-title d-flex align-items-center\">\r\n {{product.name}}\r\n </div>\r\n <div class=\"product-description\">\r\n {{product.description}}\r\n </div>\r\n</ng-template>\r\n\r\n<div \r\n [id]=\"elementUUID\"\r\n class=\"btn-group app-switcher\">\r\n <button \r\n type=\"button\" \r\n class=\"btn btn-link rounded p-0 text-dark switcher-button\"\r\n aria-controls=\"dropdown-basic\"\r\n (click)=\"onDropdownClicked()\">\r\n <fa-icon \r\n [icon]=\"selectorIcon\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </button>\r\n</div>\r\n\r\n<dx-popover\r\n #popover\r\n target=\"#{{elementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view \r\n showScrollbar=\"always\">\r\n \r\n <div class=\"app-switcher-menu\">\r\n <ng-container *ngIf=\"showSkeleton\">\r\n <div class=\"header skeleton skeleton-height-1 w-50 \"></div>\r\n <div class=\"product mt-2 skeleton skeleton-height-2\"></div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && activatedProducts.length > 0\">\r\n <h6 class=\"header\">{{ switchText }}</h6>\r\n <div *ngFor=\"let activatedProduct of activatedProducts\" \r\n class=\"product\"\r\n (click)=\"emitProductClick(activatedProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: activatedProduct }\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && discoverProducts.length > 0\">\r\n <h6 class=\"header\">{{ discoverText }}</h6>\r\n\r\n <div *ngFor=\"let discoverProduct of discoverProducts\" \r\n class=\"product\"\r\n (click)=\"emitProductClick(discoverProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: discoverProduct }\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </dx-scroll-view>\r\n</dx-popover>\r\n\r\n ", styles: [""] }]
62
+ }], ctorParameters: function () { return []; }, propDecorators: { popover: [{
63
+ type: ViewChild,
64
+ args: ['popover', { static: false }]
65
+ }], productCode: [{
55
66
  type: Input
56
67
  }], userProductCodes: [{
57
68
  type: Input
@@ -70,11 +81,13 @@ class SdsAppSwitcherModule {
70
81
  SdsAppSwitcherModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAppSwitcherModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
71
82
  SdsAppSwitcherModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAppSwitcherModule, declarations: [SdsAppSwitcherComponent], imports: [CommonModule,
72
83
  FontAwesomeModule,
73
- BsDropdownModule], exports: [SdsAppSwitcherComponent] });
84
+ DxPopoverModule,
85
+ DxScrollViewModule], exports: [SdsAppSwitcherComponent] });
74
86
  SdsAppSwitcherModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAppSwitcherModule, imports: [[
75
87
  CommonModule,
76
88
  FontAwesomeModule,
77
- BsDropdownModule
89
+ DxPopoverModule,
90
+ DxScrollViewModule
78
91
  ]] });
79
92
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAppSwitcherModule, decorators: [{
80
93
  type: NgModule,
@@ -85,7 +98,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
85
98
  imports: [
86
99
  CommonModule,
87
100
  FontAwesomeModule,
88
- BsDropdownModule
101
+ DxPopoverModule,
102
+ DxScrollViewModule
89
103
  ],
90
104
  exports: [
91
105
  SdsAppSwitcherComponent
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-app-switcher.mjs","sources":["../../../projects/ngx-sds-components/src/lib/app-switcher/app-switcher.component.ts","../../../projects/ngx-sds-components/src/lib/app-switcher/app-switcher.component.html","../../../projects/ngx-sds-components/src/lib/app-switcher/app-switcher.module.ts","../../../projects/ngx-sds-components/src/lib/app-switcher/spicainternational-ngx-sds-components-src-lib-app-switcher.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { faGrid } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { ProductModel } from './app-switcher.model';\r\n\r\n@Component({\r\n selector: 'sds-app-switcher',\r\n templateUrl: './app-switcher.component.html',\r\n styleUrls: ['./app-switcher.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsAppSwitcherComponent implements OnInit, OnChanges {\r\n \r\n @Input() public productCode: Number | undefined;\r\n @Input() public userProductCodes: Number[] | undefined;\r\n @Input() public tenantProducts: ProductModel[] | undefined;\r\n\r\n @Input() public switchText: string = '';\r\n @Input() public discoverText: string = '';\r\n\r\n @Output() public productClick: EventEmitter<ProductModel> = new EventEmitter();\r\n\r\n\r\n public activatedProducts: ProductModel[];\r\n public discoverProducts: ProductModel[];\r\n \r\n public showSkeleton: boolean;\r\n public selectorIcon = faGrid;\r\n \r\n\r\n constructor() {\r\n this.showSkeleton = true;\r\n this.activatedProducts = new Array<ProductModel>();\r\n this.discoverProducts = new Array<ProductModel>(); \r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['userProductCodes'] || changes['tenantProducts'] || changes['productCode']) {\r\n if (this.userProductCodes !== undefined && this.tenantProducts !== undefined && this.productCode !== undefined) {\r\n this.activatedProducts = [];\r\n this.discoverProducts = [];\r\n\r\n this.tenantProducts.forEach(product => {\r\n if ((this.userProductCodes as Number[]).includes(product.code)) {\r\n // exclude current product from the list\r\n if (product.code != this.productCode) {\r\n this.activatedProducts.push(product);\r\n }\r\n } else {\r\n this.discoverProducts.push(product);\r\n }\r\n });\r\n this.showSkeleton = false;\r\n } else {\r\n this.showSkeleton = true;\r\n }\r\n }\r\n }\r\n\r\n public emitProductClick(product: ProductModel): void {\r\n this.productClick.emit(product);\r\n }\r\n\r\n}\r\n","<ng-template #productTemplate let-product=\"product\">\r\n <div class=\"product-logo\">\r\n <img [src]=\"product.logoUri\" alt=\"{{ product.Name }}\">\r\n </div>\r\n <div class=\"product-title d-flex align-items-center\">\r\n {{product.name}}\r\n </div>\r\n <div class=\"product-description\">\r\n {{product.description}}\r\n </div>\r\n</ng-template>\r\n\r\n<div class=\"btn-group app-switcher\" dropdown>\r\n <!-- id=\"button-basic\" -->\r\n <button \r\n dropdownToggle \r\n type=\"button\" \r\n class=\"btn btn-link rounded p-0 text-dark\"\r\n aria-controls=\"dropdown-basic\">\r\n <fa-icon \r\n [icon]=\"selectorIcon\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </button>\r\n\r\n <div \r\n *dropdownMenu\r\n class=\"dropdown-menu\" \r\n role=\"menu\"\r\n aria-labelledby=\"app-switcher-button\">\r\n\r\n <ng-container *ngIf=\"showSkeleton\">\r\n <div class=\"dropdown-header skeleton skeleton-height-1 w-50 \"></div>\r\n <div class=\"dropdown-item product-container mt-2 skeleton skeleton-height-2\"></div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && activatedProducts.length > 0\">\r\n <h6 class=\"dropdown-header\">{{ switchText }}</h6>\r\n <a *ngFor=\"let activatedProduct of activatedProducts\" \r\n class=\"dropdown-item product-container\"\r\n (click)=\"emitProductClick(activatedProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: activatedProduct }\">\r\n </ng-container>\r\n </a>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && discoverProducts.length > 0\">\r\n <h6 class=\"dropdown-header\">{{ discoverText }}</h6>\r\n\r\n <a *ngFor=\"let discoverProduct of discoverProducts\" \r\n class=\"dropdown-item product-container\"\r\n (click)=\"emitProductClick(discoverProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: discoverProduct }\">\r\n </ng-container>\r\n </a>\r\n </ng-container>\r\n </div>\r\n </div>\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsAppSwitcherComponent } from './app-switcher.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SdsAppSwitcherComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n BsDropdownModule\r\n ],\r\n exports: [\r\n SdsAppSwitcherComponent\r\n ]\r\n})\r\nexport class SdsAppSwitcherModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-app-switcher.mjs","sources":["../../../projects/ngx-sds-components/src/lib/app-switcher/app-switcher.component.ts","../../../projects/ngx-sds-components/src/lib/app-switcher/app-switcher.component.html","../../../projects/ngx-sds-components/src/lib/app-switcher/app-switcher.module.ts","../../../projects/ngx-sds-components/src/lib/app-switcher/spicainternational-ngx-sds-components-src-lib-app-switcher.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { faGrid } from '@fortawesome/pro-solid-svg-icons';\r\nimport { DxPopoverComponent } from 'devextreme-angular';\r\n\r\nimport { ProductModel } from './app-switcher.model';\r\n\r\n@Component({\r\n selector: 'sds-app-switcher',\r\n templateUrl: './app-switcher.component.html',\r\n styleUrls: ['./app-switcher.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsAppSwitcherComponent implements OnInit, OnChanges {\r\n @ViewChild('popover', {static: false}) private popover?: DxPopoverComponent;\r\n \r\n @Input() public productCode: Number | undefined;\r\n @Input() public userProductCodes: Number[] | undefined;\r\n @Input() public tenantProducts: ProductModel[] | undefined;\r\n\r\n @Input() public switchText: string = '';\r\n @Input() public discoverText: string = '';\r\n\r\n @Output() public productClick: EventEmitter<ProductModel> = new EventEmitter();\r\n\r\n\r\n public activatedProducts: ProductModel[];\r\n public discoverProducts: ProductModel[];\r\n \r\n public showSkeleton: boolean;\r\n public selectorIcon = faGrid;\r\n\r\n public elementUUID = 'sds-as-' + crypto.randomUUID();\r\n public showDropdown = false;\r\n \r\n constructor() {\r\n this.showSkeleton = true;\r\n this.activatedProducts = new Array<ProductModel>();\r\n this.discoverProducts = new Array<ProductModel>(); \r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['userProductCodes'] || changes['tenantProducts'] || changes['productCode']) {\r\n if (this.userProductCodes !== undefined && this.tenantProducts !== undefined && this.productCode !== undefined) {\r\n this.activatedProducts = [];\r\n this.discoverProducts = [];\r\n\r\n this.tenantProducts.forEach(product => {\r\n if ((this.userProductCodes as Number[]).includes(product.code)) {\r\n // exclude current product from the list\r\n if (product.code != this.productCode) {\r\n this.activatedProducts.push(product);\r\n }\r\n } else {\r\n this.discoverProducts.push(product);\r\n }\r\n });\r\n this.showSkeleton = false;\r\n } else {\r\n this.showSkeleton = true;\r\n }\r\n this.popover?.instance.repaint();\r\n }\r\n }\r\n\r\n public emitProductClick(product: ProductModel): void {\r\n this.productClick.emit(product);\r\n }\r\n\r\n public onDropdownClicked(){\r\n this.showDropdown = true;\r\n }\r\n\r\n}\r\n","<ng-template #productTemplate let-product=\"product\">\r\n <div class=\"product-logo\">\r\n <img [src]=\"product.logoUri\" alt=\"{{ product.Name }}\">\r\n </div>\r\n <div class=\"product-title d-flex align-items-center\">\r\n {{product.name}}\r\n </div>\r\n <div class=\"product-description\">\r\n {{product.description}}\r\n </div>\r\n</ng-template>\r\n\r\n<div \r\n [id]=\"elementUUID\"\r\n class=\"btn-group app-switcher\">\r\n <button \r\n type=\"button\" \r\n class=\"btn btn-link rounded p-0 text-dark switcher-button\"\r\n aria-controls=\"dropdown-basic\"\r\n (click)=\"onDropdownClicked()\">\r\n <fa-icon \r\n [icon]=\"selectorIcon\" \r\n [fixedWidth]=\"true\">\r\n </fa-icon>\r\n </button>\r\n</div>\r\n\r\n<dx-popover\r\n #popover\r\n target=\"#{{elementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view \r\n showScrollbar=\"always\">\r\n \r\n <div class=\"app-switcher-menu\">\r\n <ng-container *ngIf=\"showSkeleton\">\r\n <div class=\"header skeleton skeleton-height-1 w-50 \"></div>\r\n <div class=\"product mt-2 skeleton skeleton-height-2\"></div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && activatedProducts.length > 0\">\r\n <h6 class=\"header\">{{ switchText }}</h6>\r\n <div *ngFor=\"let activatedProduct of activatedProducts\" \r\n class=\"product\"\r\n (click)=\"emitProductClick(activatedProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: activatedProduct }\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!showSkeleton && discoverProducts.length > 0\">\r\n <h6 class=\"header\">{{ discoverText }}</h6>\r\n\r\n <div *ngFor=\"let discoverProduct of discoverProducts\" \r\n class=\"product\"\r\n (click)=\"emitProductClick(discoverProduct)\">\r\n <ng-container \r\n [ngTemplateOutlet]=\"productTemplate\"\r\n [ngTemplateOutletContext]=\"{ product: discoverProduct }\">\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </dx-scroll-view>\r\n</dx-popover>\r\n\r\n ","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsAppSwitcherComponent } from './app-switcher.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { DxPopoverModule } from 'devextreme-angular/ui/popover';\r\nimport { DxScrollViewModule } from 'devextreme-angular/ui/scroll-view';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SdsAppSwitcherComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule,\r\n DxPopoverModule,\r\n DxScrollViewModule\r\n ],\r\n exports: [\r\n SdsAppSwitcherComponent\r\n ]\r\n})\r\nexport class SdsAppSwitcherModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, Input, ViewChild, NgModule } from '@angular/core';
2
+ import { Component, Input, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i3 from 'ngx-bootstrap/popover';
6
- import { PopoverModule } from 'ngx-bootstrap/popover';
5
+ import * as i2 from 'devextreme-angular/ui/popover';
6
+ import { DxPopoverModule } from 'devextreme-angular/ui/popover';
7
+ import * as i3 from 'devextreme-angular/ui/scroll-view';
8
+ import { DxScrollViewModule } from 'devextreme-angular/ui/scroll-view';
7
9
 
8
10
  class SdsAvatarComponent {
9
11
  constructor() {
@@ -101,6 +103,8 @@ class SdsAvatarGroupComponent {
101
103
  this.inflow = [];
102
104
  this.overflowCountDisplay = '';
103
105
  this.overFlowBorderStyle = 'none';
106
+ this.overflowElementUUID = 'sds-ag-' + crypto.randomUUID();
107
+ this.showDropdown = false;
104
108
  }
105
109
  ngOnChanges(changes) {
106
110
  if (changes['data'] || changes['maxCount']) {
@@ -117,19 +121,16 @@ class SdsAvatarGroupComponent {
117
121
  }
118
122
  }
119
123
  ngOnInit() { }
120
- overflowAvatarClicked(event) {
121
- this._popover?.show();
124
+ onOverflowClicked() {
125
+ this.showDropdown = true;
122
126
  }
123
127
  }
124
128
  SdsAvatarGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
- SdsAvatarGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsAvatarGroupComponent, selector: "sds-avatar-group", inputs: { stacked: "stacked", maxCount: "maxCount", fontSize: "fontSize", borderColor: "borderColor", data: "data" }, viewQueries: [{ propertyName: "_popover", first: true, predicate: ["popover"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex avatar-group-container\">\n <sds-avatar *ngFor=\"let avatar of inflow\"\n [text]=\"avatar.text\"\n [colorKey]=\"avatar.colorKey\"\n [borderColor]=\"borderColor\"\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\n [pictureUri]=\"avatar.pictureUri ?? ''\"\n [showHint]=\"true\"\n [style.font-size.rem]=\"fontSize\"\n [style.margin-right.rem]=\"stacked ? fontSize/-3 : fontSize/15\"\n >\n </sds-avatar>\n \n <sds-avatar \n *ngIf=\"overflow.length > 0\"\n class=\"overflow\"\n [initialsText]=\"overflowCountDisplay\"\n [borderColor]=\"borderColor\"\n [borderStyle]=\"overFlowBorderStyle\"\n cursor=\"pointer\"\n [style.font-size.rem]=\"fontSize\"\n\n [popover]=\"avatarGroupPopupTemplate\"\n placement=\"bottom\"\n [outsideClick]=\"true\"\n container=\"body\"\n triggers=\"\" \n #popover=\"bs-popover\"\n (click)=\"overflowAvatarClicked($event)\"\n >\n </sds-avatar>\n</div>\n\n<ng-template #avatarGroupPopupTemplate>\n <div class=\"overflow-avatars-container rounded\">\n <div *ngFor=\"let avatar of overflow\"\n class=\"d-flex align-items-center pl-3 py-2 pr-5 my-2 overflow-avatar-container\" >\n <sds-avatar\n [text]=\"avatar.text\"\n [colorKey]=\"avatar.colorKey\"\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\n [pictureUri]=\"avatar.pictureUri ?? ''\"\n borderColor=\"transparent\"\n [style.font-size.rem]=\"1.8\" \n >\n </sds-avatar>\n <div class=\"ml-3\">{{avatar.text}}</div>\n </div>\n </div>\n</ng-template>", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{max-height:30vh;overflow:auto;margin:-.5rem -.75rem;cursor:default}.overflow-avatars-container .overflow-avatar-container:hover{background-color:#eaf3f9}\n"], components: [{ type: SdsAvatarComponent, selector: "sds-avatar", inputs: ["text", "colorKey", "pictureUri", "showHint", "borderStyle", "borderColor", "initialsText", "cursor"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }] });
129
+ SdsAvatarGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsAvatarGroupComponent, selector: "sds-avatar-group", inputs: { stacked: "stacked", maxCount: "maxCount", fontSize: "fontSize", borderColor: "borderColor", data: "data" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"d-flex avatar-group-container\">\r\n <sds-avatar *ngFor=\"let avatar of inflow\"\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n [showHint]=\"true\"\r\n [style.font-size.rem]=\"fontSize\"\r\n [style.margin-right.rem]=\"stacked ? fontSize/-3 : fontSize/15\"\r\n >\r\n </sds-avatar>\r\n \r\n <sds-avatar \r\n *ngIf=\"overflow.length > 0\"\r\n [id]=\"overflowElementUUID\"\r\n class=\"overflow\"\r\n [initialsText]=\"overflowCountDisplay\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"overFlowBorderStyle\"\r\n cursor=\"pointer\"\r\n [style.font-size.rem]=\"fontSize\"\r\n\r\n placement=\"bottom\"\r\n container=\"body\"\r\n triggers=\"\" \r\n (click)=\"onOverflowClicked()\"\r\n >\r\n </sds-avatar>\r\n\r\n <dx-popover\r\n target=\"#{{overflowElementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view \r\n showScrollbar=\"always\">\r\n <div class=\"overflow-avatars-container rounded\">\r\n <div *ngFor=\"let avatar of overflow\"\r\n class=\"d-flex align-items-center ps-3 py-2 pe-5 my-2 overflow-avatar-container\" >\r\n <sds-avatar\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n borderColor=\"transparent\"\r\n [style.font-size.rem]=\"1.8\" \r\n >\r\n </sds-avatar>\r\n <div class=\"ms-3\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{cursor:default}.overflow-avatars-container .overflow-avatar-container:hover{background-color:#eaf3f9}\n"], components: [{ type: SdsAvatarComponent, selector: "sds-avatar", inputs: ["text", "colorKey", "pictureUri", "showHint", "borderStyle", "borderColor", "initialsText", "cursor"] }, { type: i2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { type: i3.DxScrollViewComponent, selector: "dx-scroll-view", inputs: ["bounceEnabled", "direction", "disabled", "elementAttr", "height", "pulledDownText", "pullingDownText", "reachBottomText", "refreshingText", "rtlEnabled", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "onPullDown", "onReachBottom", "onScroll", "onUpdated", "bounceEnabledChange", "directionChange", "disabledChange", "elementAttrChange", "heightChange", "pulledDownTextChange", "pullingDownTextChange", "reachBottomTextChange", "refreshingTextChange", "rtlEnabledChange", "scrollByContentChange", "scrollByThumbChange", "showScrollbarChange", "useNativeChange", "widthChange"] }], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
126
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarGroupComponent, decorators: [{
127
131
  type: Component,
128
- args: [{ selector: 'sds-avatar-group', template: "<div class=\"d-flex avatar-group-container\">\n <sds-avatar *ngFor=\"let avatar of inflow\"\n [text]=\"avatar.text\"\n [colorKey]=\"avatar.colorKey\"\n [borderColor]=\"borderColor\"\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\n [pictureUri]=\"avatar.pictureUri ?? ''\"\n [showHint]=\"true\"\n [style.font-size.rem]=\"fontSize\"\n [style.margin-right.rem]=\"stacked ? fontSize/-3 : fontSize/15\"\n >\n </sds-avatar>\n \n <sds-avatar \n *ngIf=\"overflow.length > 0\"\n class=\"overflow\"\n [initialsText]=\"overflowCountDisplay\"\n [borderColor]=\"borderColor\"\n [borderStyle]=\"overFlowBorderStyle\"\n cursor=\"pointer\"\n [style.font-size.rem]=\"fontSize\"\n\n [popover]=\"avatarGroupPopupTemplate\"\n placement=\"bottom\"\n [outsideClick]=\"true\"\n container=\"body\"\n triggers=\"\" \n #popover=\"bs-popover\"\n (click)=\"overflowAvatarClicked($event)\"\n >\n </sds-avatar>\n</div>\n\n<ng-template #avatarGroupPopupTemplate>\n <div class=\"overflow-avatars-container rounded\">\n <div *ngFor=\"let avatar of overflow\"\n class=\"d-flex align-items-center pl-3 py-2 pr-5 my-2 overflow-avatar-container\" >\n <sds-avatar\n [text]=\"avatar.text\"\n [colorKey]=\"avatar.colorKey\"\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\n [pictureUri]=\"avatar.pictureUri ?? ''\"\n borderColor=\"transparent\"\n [style.font-size.rem]=\"1.8\" \n >\n </sds-avatar>\n <div class=\"ml-3\">{{avatar.text}}</div>\n </div>\n </div>\n</ng-template>", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{max-height:30vh;overflow:auto;margin:-.5rem -.75rem;cursor:default}.overflow-avatars-container .overflow-avatar-container:hover{background-color:#eaf3f9}\n"] }]
129
- }], ctorParameters: function () { return []; }, propDecorators: { _popover: [{
130
- type: ViewChild,
131
- args: ['popover', { static: false }]
132
- }], stacked: [{
132
+ args: [{ selector: 'sds-avatar-group', template: "<div class=\"d-flex avatar-group-container\">\r\n <sds-avatar *ngFor=\"let avatar of inflow\"\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n [showHint]=\"true\"\r\n [style.font-size.rem]=\"fontSize\"\r\n [style.margin-right.rem]=\"stacked ? fontSize/-3 : fontSize/15\"\r\n >\r\n </sds-avatar>\r\n \r\n <sds-avatar \r\n *ngIf=\"overflow.length > 0\"\r\n [id]=\"overflowElementUUID\"\r\n class=\"overflow\"\r\n [initialsText]=\"overflowCountDisplay\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"overFlowBorderStyle\"\r\n cursor=\"pointer\"\r\n [style.font-size.rem]=\"fontSize\"\r\n\r\n placement=\"bottom\"\r\n container=\"body\"\r\n triggers=\"\" \r\n (click)=\"onOverflowClicked()\"\r\n >\r\n </sds-avatar>\r\n\r\n <dx-popover\r\n target=\"#{{overflowElementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view \r\n showScrollbar=\"always\">\r\n <div class=\"overflow-avatars-container rounded\">\r\n <div *ngFor=\"let avatar of overflow\"\r\n class=\"d-flex align-items-center ps-3 py-2 pe-5 my-2 overflow-avatar-container\" >\r\n <sds-avatar\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n borderColor=\"transparent\"\r\n [style.font-size.rem]=\"1.8\" \r\n >\r\n </sds-avatar>\r\n <div class=\"ms-3\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>", styles: [".avatar-group-container{flex-wrap:wrap;gap:.25rem}.avatar-group-container .overflow{cursor:pointer!important}.overflow-avatars-container{cursor:default}.overflow-avatars-container .overflow-avatar-container:hover{background-color:#eaf3f9}\n"] }]
133
+ }], ctorParameters: function () { return []; }, propDecorators: { stacked: [{
133
134
  type: Input
134
135
  }], maxCount: [{
135
136
  type: Input
@@ -150,11 +151,13 @@ class SdsAvatarModule {
150
151
  SdsAvatarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
151
152
  SdsAvatarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarModule, declarations: [SdsAvatarComponent,
152
153
  SdsAvatarGroupComponent], imports: [CommonModule,
153
- PopoverModule], exports: [SdsAvatarComponent,
154
+ DxPopoverModule,
155
+ DxScrollViewModule], exports: [SdsAvatarComponent,
154
156
  SdsAvatarGroupComponent] });
155
157
  SdsAvatarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarModule, imports: [[
156
158
  CommonModule,
157
- PopoverModule
159
+ DxPopoverModule,
160
+ DxScrollViewModule
158
161
  ]] });
159
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsAvatarModule, decorators: [{
160
163
  type: NgModule,
@@ -164,7 +167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
164
167
  ],
165
168
  imports: [
166
169
  CommonModule,
167
- PopoverModule
170
+ DxPopoverModule,
171
+ DxScrollViewModule
168
172
  ],
169
173
  exports: [
170
174
  ...components
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-avatar.mjs","sources":["../../../projects/ngx-sds-components/src/lib/avatar/avatar.component.ts","../../../projects/ngx-sds-components/src/lib/avatar/avatar.component.html","../../../projects/ngx-sds-components/src/lib/avatar/avatar-group.component.ts","../../../projects/ngx-sds-components/src/lib/avatar/avatar-group.component.html","../../../projects/ngx-sds-components/src/lib/avatar/avatar.module.ts","../../../projects/ngx-sds-components/src/lib/avatar/spicainternational-ngx-sds-components-src-lib-avatar.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sds-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n})\r\nexport class SdsAvatarComponent implements AfterViewInit, OnChanges {\r\n @Input() text: string = '';\r\n @Input() colorKey: string = '';\r\n @Input() pictureUri: string = '';\r\n @Input() showHint: boolean = false;\r\n @Input() borderStyle: 'solid' | 'dashed' | 'dotted' | 'none' = 'none';\r\n @Input() borderColor?: string;\r\n @Input() initialsText?: string;\r\n @Input() cursor?: string;\r\n\r\n public isPictureReady: boolean = false;\r\n public initials: string = '';\r\n\r\n constructor() {}\r\n\r\n ngAfterViewInit() {\r\n this.loadUserPicture();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (\r\n changes['text'] &&\r\n changes['text'].currentValue != changes['text'].previousValue &&\r\n this.initialsText == undefined\r\n ) {\r\n this.extractInitials();\r\n }\r\n\r\n if (\r\n changes['pictureUri'] &&\r\n changes['pictureUri'].currentValue !=\r\n changes['pictureUri'].previousValue\r\n ) {\r\n this.loadUserPicture();\r\n }\r\n\r\n if (changes['initialsText'] && this.initialsText) {\r\n this.initials = this.initialsText;\r\n }\r\n }\r\n\r\n public setColorClass(): string {\r\n if (this.colorKey) {\r\n return 'color' + this.getColorIndex(this.colorKey);\r\n }\r\n return 'color18';\r\n }\r\n\r\n private extractInitials(): void {\r\n this.initials = this.text\r\n ? this.text\r\n .toUpperCase()\r\n .split(' ')\r\n .map((n) => n[0])\r\n .slice(0, 2)\r\n .join('')\r\n : '';\r\n }\r\n\r\n private getColorIndex(s: string): number {\r\n const length = 10;\r\n if (!s) {\r\n return 0;\r\n }\r\n let sumOfChars = s\r\n .split('')\r\n .map((x) => x.charCodeAt(0))\r\n .reduce((a, b) => a + b, 0);\r\n return sumOfChars % length;\r\n }\r\n\r\n public loadUserPicture() {\r\n if (this.pictureUri && this.pictureUri !== '') {\r\n this.isPictureReady = true;\r\n } else {\r\n this.isPictureReady = false;\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"avatar circle d-flex justify-content-center align-items-center\"\r\n [class.hasPicture]=\"isPictureReady\"\r\n [ngClass]=\"setColorClass()\"\r\n [title]=\"showHint ? text : ''\"\r\n [style.border-style]=\"borderStyle.toString()\"\r\n [style.border-color]=\"borderColor\"\r\n [style.cursor]=\"cursor ? cursor : 'default'\"\r\n>\r\n <span \r\n *ngIf=\"!isPictureReady\" \r\n class=\"initials\"\r\n >\r\n {{ initials }}\r\n </span>\r\n\r\n <img \r\n *ngIf=\"isPictureReady\" \r\n [src]=\"pictureUri\"\r\n alt=\"\" />\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { PopoverDirective } from 'ngx-bootstrap/popover';\nimport { AvatarModel } from './avatar-group.model';\n\n@Component({\n selector: 'sds-avatar-group',\n templateUrl: './avatar-group.component.html',\n styleUrls: ['./avatar-group.component.scss'],\n})\nexport class SdsAvatarGroupComponent implements OnInit, OnChanges {\n @ViewChild('popover', {static: false}) private _popover: PopoverDirective | undefined;\n\n @Input() public stacked: boolean = false;\n @Input() public maxCount?: number;\n @Input() public fontSize: number = 2;\n @Input() public borderColor?: string;\n @Input() public data: Array<AvatarModel> = [];\n\n public overflow: Array<AvatarModel> = [];\n public inflow: Array<AvatarModel> = [];\n\n\n public overflowCountDisplay: string = '';\n public overFlowBorderStyle: 'solid' | 'none' = 'none';\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['data'] || changes['maxCount']){\n if (this.maxCount && this.data) {\n this.overflow = [...this.data];\n this.inflow = this.overflow.splice(0, this.maxCount);\n console.log(this.overflow.length);\n this.overflowCountDisplay = `+${Math.min(99, this.overflow.length)}`;\n this.overFlowBorderStyle = this.data.filter(x => x.borderStyle).length > 0 ? 'solid' : 'none';\n } else {\n this.inflow = [...this.data];\n }\n }\n }\n\n ngOnInit(): void {}\n\n public overflowAvatarClicked(event: MouseEvent) {\n this._popover?.show();\n }\n\n}\n","<div class=\"d-flex avatar-group-container\">\n <sds-avatar *ngFor=\"let avatar of inflow\"\n [text]=\"avatar.text\"\n [colorKey]=\"avatar.colorKey\"\n [borderColor]=\"borderColor\"\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\n [pictureUri]=\"avatar.pictureUri ?? ''\"\n [showHint]=\"true\"\n [style.font-size.rem]=\"fontSize\"\n [style.margin-right.rem]=\"stacked ? fontSize/-3 : fontSize/15\"\n >\n </sds-avatar>\n \n <sds-avatar \n *ngIf=\"overflow.length > 0\"\n class=\"overflow\"\n [initialsText]=\"overflowCountDisplay\"\n [borderColor]=\"borderColor\"\n [borderStyle]=\"overFlowBorderStyle\"\n cursor=\"pointer\"\n [style.font-size.rem]=\"fontSize\"\n\n [popover]=\"avatarGroupPopupTemplate\"\n placement=\"bottom\"\n [outsideClick]=\"true\"\n container=\"body\"\n triggers=\"\" \n #popover=\"bs-popover\"\n (click)=\"overflowAvatarClicked($event)\"\n >\n </sds-avatar>\n</div>\n\n<ng-template #avatarGroupPopupTemplate>\n <div class=\"overflow-avatars-container rounded\">\n <div *ngFor=\"let avatar of overflow\"\n class=\"d-flex align-items-center pl-3 py-2 pr-5 my-2 overflow-avatar-container\" >\n <sds-avatar\n [text]=\"avatar.text\"\n [colorKey]=\"avatar.colorKey\"\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\n [pictureUri]=\"avatar.pictureUri ?? ''\"\n borderColor=\"transparent\"\n [style.font-size.rem]=\"1.8\" \n >\n </sds-avatar>\n <div class=\"ml-3\">{{avatar.text}}</div>\n </div>\n </div>\n</ng-template>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { PopoverModule } from 'ngx-bootstrap/popover';\r\n\r\nimport { SdsAvatarComponent } from './avatar.component';\r\nimport { SdsAvatarGroupComponent } from './avatar-group.component';\r\n\r\n\r\nconst components = [\r\n SdsAvatarComponent,\r\n SdsAvatarGroupComponent\r\n];\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n PopoverModule\r\n\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsAvatarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SdsAvatarComponent","i2"],"mappings":"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"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-avatar.mjs","sources":["../../../projects/ngx-sds-components/src/lib/avatar/avatar.component.ts","../../../projects/ngx-sds-components/src/lib/avatar/avatar.component.html","../../../projects/ngx-sds-components/src/lib/avatar/avatar-group.component.ts","../../../projects/ngx-sds-components/src/lib/avatar/avatar-group.component.html","../../../projects/ngx-sds-components/src/lib/avatar/avatar.module.ts","../../../projects/ngx-sds-components/src/lib/avatar/spicainternational-ngx-sds-components-src-lib-avatar.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sds-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n})\r\nexport class SdsAvatarComponent implements AfterViewInit, OnChanges {\r\n @Input() text: string = '';\r\n @Input() colorKey: string = '';\r\n @Input() pictureUri: string = '';\r\n @Input() showHint: boolean = false;\r\n @Input() borderStyle: 'solid' | 'dashed' | 'dotted' | 'none' = 'none';\r\n @Input() borderColor?: string;\r\n @Input() initialsText?: string;\r\n @Input() cursor?: string;\r\n\r\n public isPictureReady: boolean = false;\r\n public initials: string = '';\r\n\r\n constructor() {}\r\n\r\n ngAfterViewInit() {\r\n this.loadUserPicture();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (\r\n changes['text'] &&\r\n changes['text'].currentValue != changes['text'].previousValue &&\r\n this.initialsText == undefined\r\n ) {\r\n this.extractInitials();\r\n }\r\n\r\n if (\r\n changes['pictureUri'] &&\r\n changes['pictureUri'].currentValue !=\r\n changes['pictureUri'].previousValue\r\n ) {\r\n this.loadUserPicture();\r\n }\r\n\r\n if (changes['initialsText'] && this.initialsText) {\r\n this.initials = this.initialsText;\r\n }\r\n }\r\n\r\n public setColorClass(): string {\r\n if (this.colorKey) {\r\n return 'color' + this.getColorIndex(this.colorKey);\r\n }\r\n return 'color18';\r\n }\r\n\r\n private extractInitials(): void {\r\n this.initials = this.text\r\n ? this.text\r\n .toUpperCase()\r\n .split(' ')\r\n .map((n) => n[0])\r\n .slice(0, 2)\r\n .join('')\r\n : '';\r\n }\r\n\r\n private getColorIndex(s: string): number {\r\n const length = 10;\r\n if (!s) {\r\n return 0;\r\n }\r\n let sumOfChars = s\r\n .split('')\r\n .map((x) => x.charCodeAt(0))\r\n .reduce((a, b) => a + b, 0);\r\n return sumOfChars % length;\r\n }\r\n\r\n public loadUserPicture() {\r\n if (this.pictureUri && this.pictureUri !== '') {\r\n this.isPictureReady = true;\r\n } else {\r\n this.isPictureReady = false;\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"avatar circle d-flex justify-content-center align-items-center\"\r\n [class.hasPicture]=\"isPictureReady\"\r\n [ngClass]=\"setColorClass()\"\r\n [title]=\"showHint ? text : ''\"\r\n [style.border-style]=\"borderStyle.toString()\"\r\n [style.border-color]=\"borderColor\"\r\n [style.cursor]=\"cursor ? cursor : 'default'\"\r\n>\r\n <span \r\n *ngIf=\"!isPictureReady\" \r\n class=\"initials\"\r\n >\r\n {{ initials }}\r\n </span>\r\n\r\n <img \r\n *ngIf=\"isPictureReady\" \r\n [src]=\"pictureUri\"\r\n alt=\"\" />\r\n</div>\r\n","import { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { AvatarModel } from './avatar-group.model';\r\n\r\n@Component({\r\n selector: 'sds-avatar-group',\r\n templateUrl: './avatar-group.component.html',\r\n styleUrls: ['./avatar-group.component.scss'],\r\n})\r\nexport class SdsAvatarGroupComponent implements OnInit, OnChanges {\r\n\r\n @Input() public stacked: boolean = false;\r\n @Input() public maxCount?: number;\r\n @Input() public fontSize: number = 2;\r\n @Input() public borderColor?: string;\r\n @Input() public data: Array<AvatarModel> = [];\r\n\r\n public overflow: Array<AvatarModel> = [];\r\n public inflow: Array<AvatarModel> = [];\r\n\r\n public overflowCountDisplay: string = '';\r\n public overFlowBorderStyle: 'solid' | 'none' = 'none';\r\n\r\n public overflowElementUUID = 'sds-ag-' + crypto.randomUUID();\r\n public showDropdown = false;\r\n\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['data'] || changes['maxCount']){\r\n if (this.maxCount && this.data) {\r\n this.overflow = [...this.data];\r\n this.inflow = this.overflow.splice(0, this.maxCount);\r\n console.log(this.overflow.length);\r\n this.overflowCountDisplay = `+${Math.min(99, this.overflow.length)}`;\r\n this.overFlowBorderStyle = this.data.filter(x => x.borderStyle).length > 0 ? 'solid' : 'none';\r\n } else {\r\n this.inflow = [...this.data];\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n public onOverflowClicked() {\r\n this.showDropdown = true;\r\n }\r\n\r\n}\r\n","<div class=\"d-flex avatar-group-container\">\r\n <sds-avatar *ngFor=\"let avatar of inflow\"\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n [showHint]=\"true\"\r\n [style.font-size.rem]=\"fontSize\"\r\n [style.margin-right.rem]=\"stacked ? fontSize/-3 : fontSize/15\"\r\n >\r\n </sds-avatar>\r\n \r\n <sds-avatar \r\n *ngIf=\"overflow.length > 0\"\r\n [id]=\"overflowElementUUID\"\r\n class=\"overflow\"\r\n [initialsText]=\"overflowCountDisplay\"\r\n [borderColor]=\"borderColor\"\r\n [borderStyle]=\"overFlowBorderStyle\"\r\n cursor=\"pointer\"\r\n [style.font-size.rem]=\"fontSize\"\r\n\r\n placement=\"bottom\"\r\n container=\"body\"\r\n triggers=\"\" \r\n (click)=\"onOverflowClicked()\"\r\n >\r\n </sds-avatar>\r\n\r\n <dx-popover\r\n target=\"#{{overflowElementUUID}}\"\r\n [(visible)]=\"showDropdown\"\r\n >\r\n <dx-scroll-view \r\n showScrollbar=\"always\">\r\n <div class=\"overflow-avatars-container rounded\">\r\n <div *ngFor=\"let avatar of overflow\"\r\n class=\"d-flex align-items-center ps-3 py-2 pe-5 my-2 overflow-avatar-container\" >\r\n <sds-avatar\r\n [text]=\"avatar.text\"\r\n [colorKey]=\"avatar.colorKey\"\r\n [borderStyle]=\"avatar.borderStyle ? avatar.borderStyle : 'none'\"\r\n [pictureUri]=\"avatar.pictureUri ?? ''\"\r\n borderColor=\"transparent\"\r\n [style.font-size.rem]=\"1.8\" \r\n >\r\n </sds-avatar>\r\n <div class=\"ms-3\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { DxPopoverModule } from 'devextreme-angular/ui/popover';\r\nimport { DxScrollViewModule } from 'devextreme-angular/ui/scroll-view';\r\n\r\nimport { SdsAvatarComponent } from './avatar.component';\r\nimport { SdsAvatarGroupComponent } from './avatar-group.component';\r\n\r\n\r\nconst components = [\r\n SdsAvatarComponent,\r\n SdsAvatarGroupComponent\r\n];\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule,\r\n DxPopoverModule,\r\n DxScrollViewModule\r\n\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsAvatarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.SdsAvatarComponent","i4"],"mappings":"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"}