@spicainternational/ngx-sds-components 5.12.2 → 5.13.0-beta.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.
@@ -2,19 +2,90 @@ import * as i0 from '@angular/core';
2
2
  import { Component, Input, NgModule } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import { faChevronRight } from '@fortawesome/pro-regular-svg-icons';
5
+ import { faAngleLeft } from '@fortawesome/pro-solid-svg-icons';
6
+ import { Subject } from 'rxjs';
6
7
  import * as i1 from '@fortawesome/angular-fontawesome';
7
8
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
8
9
 
10
+ // import { faSidebar } from '@fortawesome/pro-light-svg-icons';
11
+ // import { IconDefinition, faSidebar, faChevronRight, faGripVertical, faGripLinesVertical, faChevronLeft, faArrowRightFromBracket } from '@fortawesome/pro-regular-svg-icons';
9
12
  class SdsSideBarComponent {
10
13
  constructor() {
11
- this.showSideBar = false;
12
- this.product = '';
13
- this.isMainSideBar = false;
14
- this.showSideBarToggleButton = false;
15
- this.caretIcon = faChevronRight;
14
+ /**
15
+ * Define when the hide panel button is shown.
16
+ * Default is 'auto' which will only show the button when the users hovers over the panel.
17
+ * 'always' will always show the button.
18
+ *
19
+ * @type {('always' | 'auto')}
20
+ * @memberof SdsSideBarComponent
21
+ */
22
+ this.showCloseButton = 'auto';
23
+ /**
24
+ * Pull out mode will show the side bar as user hovers over the left side of the screen
25
+ * When side bar is in pull out mode it will be rendered over the main contents.
26
+ *
27
+ * @type {boolean}
28
+ * @memberof SdsSideBarComponent
29
+ */
30
+ this.enablePullOutMode = false;
31
+ /**
32
+ * Define the width of the side bar in rem.
33
+ *
34
+ * @type {number}
35
+ * @memberof SdsSideBarComponent
36
+ */
37
+ this.widthRem = 14;
38
+ /**
39
+ * Product name defines the color scheme of the side bar.
40
+ * Default is 'all-hours'.
41
+ * Options: 'all-hours', 'door-cloud', 'my-hours', 'time-and-space'
42
+ *
43
+ * @type {string}
44
+ * @memberof SdsSideBarComponent
45
+ */
46
+ this.product = 'all-hours';
47
+ /**
48
+ * Define the width of the screen that triggers hiding of the side bar.
49
+ * Note that the width is checked at the component creation and not when the screen is resized.
50
+ * If user resizes the screen he must manually hide the side bar.
51
+ *
52
+ * @type {(number | undefined)}
53
+ * @memberof SdsSideBarComponent
54
+ */
55
+ this.autoHideScreenWidth = 992;
56
+ this.showSideBar = true;
57
+ this.pullOutSideBar = false;
58
+ this.caretIcon = faAngleLeft;
59
+ this.autoHideActive = false;
60
+ this.screenWidth = 0;
61
+ this.componentInitialized = false;
62
+ this._checkAutoHide$ = new Subject();
63
+ this._checkAutoHide$.subscribe(() => {
64
+ console.log('check autohide');
65
+ if (this.componentInitialized && this.autoHideScreenWidth) {
66
+ console.log('this.autoHideScreenWidthRem', this.autoHideScreenWidth);
67
+ this.autoHideActive = this.screenWidth < this.autoHideScreenWidth;
68
+ console.log('hideSideBar', this.autoHideActive);
69
+ if (this.autoHideActive) {
70
+ this.showSideBar = false;
71
+ }
72
+ }
73
+ });
74
+ }
75
+ ngOnDestroy() {
76
+ this._checkAutoHide$.unsubscribe();
77
+ }
78
+ ngOnChanges(changes) {
79
+ if (changes['autoHideScreenWidthRem']) {
80
+ this._checkAutoHide$.next();
81
+ }
82
+ }
83
+ ngOnInit() {
84
+ this.componentInitialized = true;
85
+ this.screenWidth = window.innerWidth;
86
+ console.log('screenWidth', this.screenWidth);
87
+ this._checkAutoHide$.next();
16
88
  }
17
- ngOnInit() { }
18
89
  toggleSideBar(state) {
19
90
  if (state !== undefined) {
20
91
  this.showSideBar = state;
@@ -25,19 +96,23 @@ class SdsSideBarComponent {
25
96
  }
26
97
  }
27
98
  SdsSideBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsSideBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- SdsSideBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsSideBarComponent, selector: "sds-side-bar", inputs: { product: "product", isMainSideBar: "isMainSideBar", showSideBarToggleButton: "showSideBarToggleButton", hideSideBarText: "hideSideBarText", showSideBarText: "showSideBarText" }, ngImport: i0, template: "<aside\r\n class=\"sds-side-bar \"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-main-side-bar] = \"isMainSideBar\"\r\n [class.hide-sidebar]=\"!showSideBar\"\r\n>\r\n <div class=\"d-flex flex-column h-100\">\r\n <div class=\"d-flex flex-column flex-grow-0 w-100 h-100\">\r\n <div\r\n *ngIf=\"showSideBarToggleButton\"\r\n class=\"toggle-side-bar-button position-absolute d-md-none rounded-circle toggleSideBar d-flex justify-content-center justify-content-center align-items-center\"\r\n [class.open]=\"showSideBar\"\r\n [title]=\"showSideBar ? hideSideBarText : showSideBarText\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <div class=\"toggle-side-bar-icon\">\r\n <fa-icon [icon]=\"caretIcon\"></fa-icon>\r\n </div> \r\n </div>\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</aside>\r\n", styles: [".toggle-side-bar-button{transition:transform .2s linear}.toggle-side-bar-button.open .toggle-side-bar-icon{transform:rotate(-180deg)}\n"], 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"] }] });
99
+ SdsSideBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsSideBarComponent, selector: "sds-side-bar", inputs: { showCloseButton: "showCloseButton", enablePullOutMode: "enablePullOutMode", widthRem: "widthRem", product: "product", autoHideScreenWidth: "autoHideScreenWidth", closeButtonHint: "closeButtonHint", openButtonHint: "openButtonHint" }, usesOnChanges: true, ngImport: i0, template: "<div \r\n class=\"vh-100 position-relative sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"showSideBar\" \r\n >\r\n\r\n <!-- CLOSE SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || showSideBar)\"\r\n class=\"sds-side-bar-button-container close-side-bar-button\"\r\n [class.hidden]=\"!showSideBar\"\r\n [class.always-show]=\"showSideBar && showCloseButton === 'always'\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"closeButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\" \r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <!-- OPEN SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || !showSideBar)\" \r\n class=\"sds-side-bar-button-container open-side-bar-button\"\r\n [class.hidden]=\"showSideBar\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"openButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\"\r\n [rotate]=\"180\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.shadow]=\"pullOutSideBar\"\r\n [class.sds-side-bar-open]=\"showSideBar\"\r\n [style.width.rem]=\"(showSideBar || pullOutSideBar) ? widthRem : enablePullOutMode ? 0.75 : 0\"\r\n \r\n (mouseleave)=\"pullOutSideBar = false\"\r\n >\r\n <div \r\n *ngIf=\"enablePullOutMode && !showSideBar && !pullOutSideBar\"\r\n class=\"sds-side-bar-pull-out h-100 position-absolute\" \r\n style=\"width: 0.75rem;\"\r\n (mouseenter)=\"pullOutSideBar = true\"\r\n >\r\n </div>\r\n\r\n <div class=\"d-flex flex-column flex-grow-0 h-100\" \r\n [style.width.rem]=\"widthRem\">\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.3s;overflow-x:hidden;position:absolute;z-index:10}.sds-side-bar.sds-side-bar-open{position:relative}.sds-side-bar:has(.sds-side-bar-pull-out:hover){width:var(--sds-side-bar-width)!important}.sds-side-bar .sds-side-bar-pull-out{background-color:#f8f9fa}.sds-side-bar-container .sds-side-bar-button-container{position:absolute;z-index:11;height:2.2rem;width:2.2rem;top:.85rem;border-radius:50%;background-color:#fff}.sds-side-bar-container .sds-side-bar-button-container.always-show{visibility:visible;opacity:1}.sds-side-bar-container button{height:2.2rem;width:2.2rem;display:flex;align-items:center;justify-content:center;border:1px solid #CED4DA;border-radius:50%;color:#375d75!important;line-height:1rem}.sds-side-bar-container button:hover{color:#f8f9fa!important}.sds-side-bar-container button .hot-spot{position:absolute;inset:-1rem}.sds-side-bar-container .open-side-bar-button{top:.85rem;right:-2.3rem;transition:visibility 0ms linear .18s;transition:opacity 0ms linear .18s;visibility:visible;opacity:1}.sds-side-bar-container .open-side-bar-button.hidden{visibility:hidden;opacity:0}.sds-side-bar-container:hover .close-side-bar-button:not(.hidden){visibility:visible;opacity:1}.sds-side-bar-container .close-side-bar-button{right:-1.1rem;visibility:hidden;transition:visibility 0s linear;transition:opacity .3s ease-in;opacity:0}:host{display:block}\n"], 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"] }] });
29
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsSideBarComponent, decorators: [{
30
101
  type: Component,
31
- args: [{ selector: 'sds-side-bar', template: "<aside\r\n class=\"sds-side-bar \"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-main-side-bar] = \"isMainSideBar\"\r\n [class.hide-sidebar]=\"!showSideBar\"\r\n>\r\n <div class=\"d-flex flex-column h-100\">\r\n <div class=\"d-flex flex-column flex-grow-0 w-100 h-100\">\r\n <div\r\n *ngIf=\"showSideBarToggleButton\"\r\n class=\"toggle-side-bar-button position-absolute d-md-none rounded-circle toggleSideBar d-flex justify-content-center justify-content-center align-items-center\"\r\n [class.open]=\"showSideBar\"\r\n [title]=\"showSideBar ? hideSideBarText : showSideBarText\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <div class=\"toggle-side-bar-icon\">\r\n <fa-icon [icon]=\"caretIcon\"></fa-icon>\r\n </div> \r\n </div>\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</aside>\r\n", styles: [".toggle-side-bar-button{transition:transform .2s linear}.toggle-side-bar-button.open .toggle-side-bar-icon{transform:rotate(-180deg)}\n"] }]
32
- }], ctorParameters: function () { return []; }, propDecorators: { product: [{
102
+ args: [{ selector: 'sds-side-bar', template: "<div \r\n class=\"vh-100 position-relative sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"showSideBar\" \r\n >\r\n\r\n <!-- CLOSE SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || showSideBar)\"\r\n class=\"sds-side-bar-button-container close-side-bar-button\"\r\n [class.hidden]=\"!showSideBar\"\r\n [class.always-show]=\"showSideBar && showCloseButton === 'always'\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"closeButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\" \r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <!-- OPEN SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || !showSideBar)\" \r\n class=\"sds-side-bar-button-container open-side-bar-button\"\r\n [class.hidden]=\"showSideBar\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"openButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\"\r\n [rotate]=\"180\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.shadow]=\"pullOutSideBar\"\r\n [class.sds-side-bar-open]=\"showSideBar\"\r\n [style.width.rem]=\"(showSideBar || pullOutSideBar) ? widthRem : enablePullOutMode ? 0.75 : 0\"\r\n \r\n (mouseleave)=\"pullOutSideBar = false\"\r\n >\r\n <div \r\n *ngIf=\"enablePullOutMode && !showSideBar && !pullOutSideBar\"\r\n class=\"sds-side-bar-pull-out h-100 position-absolute\" \r\n style=\"width: 0.75rem;\"\r\n (mouseenter)=\"pullOutSideBar = true\"\r\n >\r\n </div>\r\n\r\n <div class=\"d-flex flex-column flex-grow-0 h-100\" \r\n [style.width.rem]=\"widthRem\">\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.3s;overflow-x:hidden;position:absolute;z-index:10}.sds-side-bar.sds-side-bar-open{position:relative}.sds-side-bar:has(.sds-side-bar-pull-out:hover){width:var(--sds-side-bar-width)!important}.sds-side-bar .sds-side-bar-pull-out{background-color:#f8f9fa}.sds-side-bar-container .sds-side-bar-button-container{position:absolute;z-index:11;height:2.2rem;width:2.2rem;top:.85rem;border-radius:50%;background-color:#fff}.sds-side-bar-container .sds-side-bar-button-container.always-show{visibility:visible;opacity:1}.sds-side-bar-container button{height:2.2rem;width:2.2rem;display:flex;align-items:center;justify-content:center;border:1px solid #CED4DA;border-radius:50%;color:#375d75!important;line-height:1rem}.sds-side-bar-container button:hover{color:#f8f9fa!important}.sds-side-bar-container button .hot-spot{position:absolute;inset:-1rem}.sds-side-bar-container .open-side-bar-button{top:.85rem;right:-2.3rem;transition:visibility 0ms linear .18s;transition:opacity 0ms linear .18s;visibility:visible;opacity:1}.sds-side-bar-container .open-side-bar-button.hidden{visibility:hidden;opacity:0}.sds-side-bar-container:hover .close-side-bar-button:not(.hidden){visibility:visible;opacity:1}.sds-side-bar-container .close-side-bar-button{right:-1.1rem;visibility:hidden;transition:visibility 0s linear;transition:opacity .3s ease-in;opacity:0}:host{display:block}\n"] }]
103
+ }], ctorParameters: function () { return []; }, propDecorators: { showCloseButton: [{
104
+ type: Input
105
+ }], enablePullOutMode: [{
106
+ type: Input
107
+ }], widthRem: [{
33
108
  type: Input
34
- }], isMainSideBar: [{
109
+ }], product: [{
35
110
  type: Input
36
- }], showSideBarToggleButton: [{
111
+ }], autoHideScreenWidth: [{
37
112
  type: Input
38
- }], hideSideBarText: [{
113
+ }], closeButtonHint: [{
39
114
  type: Input
40
- }], showSideBarText: [{
115
+ }], openButtonHint: [{
41
116
  type: Input
42
117
  }] } });
43
118
 
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-side-bar.mjs","sources":["../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.ts","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.html","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.module.ts","../../../projects/ngx-sds-components/src/lib/side-bar/spicainternational-ngx-sds-components-src-lib-side-bar.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\r\nimport { IconDefinition, faChevronRight } from '@fortawesome/pro-regular-svg-icons';\r\n\r\n@Component({\r\n selector: 'sds-side-bar',\r\n templateUrl: './side-bar.component.html',\r\n styleUrls: ['./side-bar.component.scss'],\r\n})\r\nexport class SdsSideBarComponent implements OnInit {\r\n\r\n public showSideBar = false;\r\n\r\n @Input() product:string = '';\r\n @Input() isMainSideBar: boolean = false;\r\n @Input() showSideBarToggleButton: boolean = false;\r\n\r\n @Input() public hideSideBarText?: string;\r\n @Input() public showSideBarText?: string;\r\n\r\n\r\n public caretIcon: IconDefinition = faChevronRight;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public toggleSideBar(state?: boolean) {\r\n if (state !== undefined) {\r\n this.showSideBar = state;\r\n } else {\r\n this.showSideBar = !this.showSideBar;\r\n }\r\n } \r\n}\r\n","<aside\r\n class=\"sds-side-bar \"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-main-side-bar] = \"isMainSideBar\"\r\n [class.hide-sidebar]=\"!showSideBar\"\r\n>\r\n <div class=\"d-flex flex-column h-100\">\r\n <div class=\"d-flex flex-column flex-grow-0 w-100 h-100\">\r\n <div\r\n *ngIf=\"showSideBarToggleButton\"\r\n class=\"toggle-side-bar-button position-absolute d-md-none rounded-circle toggleSideBar d-flex justify-content-center justify-content-center align-items-center\"\r\n [class.open]=\"showSideBar\"\r\n [title]=\"showSideBar ? hideSideBarText : showSideBarText\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <div class=\"toggle-side-bar-icon\">\r\n <fa-icon [icon]=\"caretIcon\"></fa-icon>\r\n </div> \r\n </div>\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</aside>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsSideBarComponent } from './side-bar.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n\r\n\r\nconst components = [\r\n SdsSideBarComponent\r\n]\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule, FontAwesomeModule\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsSideBarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;MAQa,mBAAmB,CAAA;AAc5B,IAAA,WAAA,GAAA;AAZO,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAElB,QAAA,IAAO,CAAA,OAAA,GAAU,EAAE,CAAC;AACpB,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;AAC/B,QAAA,IAAuB,CAAA,uBAAA,GAAY,KAAK,CAAC;AAM3C,QAAA,IAAS,CAAA,SAAA,GAAmB,cAAc,CAAC;KAElC;AAEhB,IAAA,QAAQ,MAAW;AAEZ,IAAA,aAAa,CAAC,KAAe,EAAA;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,SAAA;KACJ;;gHAxBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,gPCRhC,qhCAwBA,EAAA,MAAA,EAAA,CAAA,yIAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhBa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACI,cAAc,EAAA,QAAA,EAAA,qhCAAA,EAAA,MAAA,EAAA,CAAA,yIAAA,CAAA,EAAA,CAAA;0EAQf,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,uBAAuB,EAAA,CAAA;sBAA/B,KAAK;gBAEU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBACU,eAAe,EAAA,CAAA;sBAA9B,KAAK;;;AEVV,MAAM,UAAU,GAAG;IACf,mBAAmB;CACtB,CAAA;MAYY,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAbzB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAOnB,YAAY,EAAE,iBAAiB,aAP/B,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAaV,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAPlB,OAAA,EAAA,CAAA;AACP,YAAA,YAAY,EAAE,iBAAiB;SAChC,CAAA,EAAA,CAAA,CAAA;2FAKU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;AACZ,wBAAA,GAAG,UAAU;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,YAAY,EAAE,iBAAiB;AAChC,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,GAAG,UAAU;AACd,qBAAA;iBACF,CAAA;;;ACpBD;;AAEG;;;;"}
1
+ {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-side-bar.mjs","sources":["../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.ts","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.html","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.module.ts","../../../projects/ngx-sds-components/src/lib/side-bar/spicainternational-ngx-sds-components-src-lib-side-bar.ts"],"sourcesContent":["import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\r\nimport { IconDefinition, faAngleLeft, faChevronRight } from '@fortawesome/pro-solid-svg-icons';\r\nimport { Subject } from 'rxjs';\r\n// import { faSidebar } from '@fortawesome/pro-light-svg-icons';\r\n// import { IconDefinition, faSidebar, faChevronRight, faGripVertical, faGripLinesVertical, faChevronLeft, faArrowRightFromBracket } from '@fortawesome/pro-regular-svg-icons';\r\n\r\n@Component({\r\n selector: 'sds-side-bar',\r\n templateUrl: './side-bar.component.html',\r\n styleUrls: ['./side-bar.component.scss'],\r\n})\r\nexport class SdsSideBarComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n /**\r\n * Define when the hide panel button is shown. \r\n * Default is 'auto' which will only show the button when the users hovers over the panel.\r\n * 'always' will always show the button.\r\n *\r\n * @type {('always' | 'auto')}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public showCloseButton: 'always' | 'auto' = 'auto';\r\n \r\n /**\r\n * Pull out mode will show the side bar as user hovers over the left side of the screen\r\n * When side bar is in pull out mode it will be rendered over the main contents.\r\n *\r\n * @type {boolean}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public enablePullOutMode: boolean = false;\r\n\r\n /**\r\n * Define the width of the side bar in rem.\r\n *\r\n * @type {number}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public widthRem: number = 14;\r\n\r\n /**\r\n * Product name defines the color scheme of the side bar.\r\n * Default is 'all-hours'.\r\n * Options: 'all-hours', 'door-cloud', 'my-hours', 'time-and-space'\r\n *\r\n * @type {string}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() product: 'all-hours' | 'door-cloud' | 'my-hours' | 'time-and-space' = 'all-hours';\r\n\r\n /**\r\n * Define the width of the screen that triggers hiding of the side bar.\r\n * Note that the width is checked at the component creation and not when the screen is resized.\r\n * If user resizes the screen he must manually hide the side bar.\r\n *\r\n * @type {(number | undefined)}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public autoHideScreenWidth: number | undefined = 992;\r\n\r\n /**\r\n * Define the hint of the hide button.\r\n *\r\n * @type {string}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public closeButtonHint?: string;\r\n\r\n /**\r\n * Define the hint of the show button.\r\n *\r\n * @type {string}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public openButtonHint?: string;\r\n\r\n\r\n public showSideBar = true;\r\n public pullOutSideBar = false; \r\n public caretIcon: IconDefinition = faAngleLeft;\r\n public autoHideActive: boolean = false;\r\n\r\n private screenWidth: number = 0;\r\n private componentInitialized: boolean = false;\r\n\r\n private _checkAutoHide$ = new Subject<void>();\r\n\r\n constructor() {\r\n\r\n this._checkAutoHide$.subscribe(() => {\r\n console.log('check autohide');\r\n if (this.componentInitialized && this.autoHideScreenWidth) {\r\n console.log('this.autoHideScreenWidthRem', this.autoHideScreenWidth);\r\n\r\n this.autoHideActive = this.screenWidth < this.autoHideScreenWidth;\r\n\r\n console.log('hideSideBar', this.autoHideActive);\r\n\r\n if (this.autoHideActive) {\r\n this.showSideBar = false;\r\n }\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this._checkAutoHide$.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['autoHideScreenWidthRem']) {\r\n this._checkAutoHide$.next();\r\n }\r\n }\r\n\r\n ngOnInit() { \r\n this.componentInitialized = true;\r\n this.screenWidth = window.innerWidth; \r\n console.log('screenWidth', this.screenWidth);\r\n this._checkAutoHide$.next();\r\n } \r\n\r\n public toggleSideBar(state?: boolean) {\r\n if (state !== undefined) {\r\n this.showSideBar = state;\r\n } else {\r\n this.showSideBar = !this.showSideBar;\r\n }\r\n } \r\n}\r\n","<div \r\n class=\"vh-100 position-relative sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"showSideBar\" \r\n >\r\n\r\n <!-- CLOSE SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || showSideBar)\"\r\n class=\"sds-side-bar-button-container close-side-bar-button\"\r\n [class.hidden]=\"!showSideBar\"\r\n [class.always-show]=\"showSideBar && showCloseButton === 'always'\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"closeButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\" \r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <!-- OPEN SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || !showSideBar)\" \r\n class=\"sds-side-bar-button-container open-side-bar-button\"\r\n [class.hidden]=\"showSideBar\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"openButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\"\r\n [rotate]=\"180\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.shadow]=\"pullOutSideBar\"\r\n [class.sds-side-bar-open]=\"showSideBar\"\r\n [style.width.rem]=\"(showSideBar || pullOutSideBar) ? widthRem : enablePullOutMode ? 0.75 : 0\"\r\n \r\n (mouseleave)=\"pullOutSideBar = false\"\r\n >\r\n <div \r\n *ngIf=\"enablePullOutMode && !showSideBar && !pullOutSideBar\"\r\n class=\"sds-side-bar-pull-out h-100 position-absolute\" \r\n style=\"width: 0.75rem;\"\r\n (mouseenter)=\"pullOutSideBar = true\"\r\n >\r\n </div>\r\n\r\n <div class=\"d-flex flex-column flex-grow-0 h-100\" \r\n [style.width.rem]=\"widthRem\">\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n\r\n </aside>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsSideBarComponent } from './side-bar.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n\r\n\r\nconst components = [\r\n SdsSideBarComponent\r\n]\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule, FontAwesomeModule\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsSideBarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -29,8 +29,6 @@ class SdsAvatarComponent {
29
29
  this.setColorClass();
30
30
  }
31
31
  ngOnChanges(changes) {
32
- console.log('change');
33
- console.log(changes);
34
32
  if (changes['initialsText']) {
35
33
  this.setLabel();
36
34
  }
@@ -55,8 +53,6 @@ class SdsAvatarComponent {
55
53
  setLabel() {
56
54
  if (this.initialsText && this.initialsText?.length > 0) {
57
55
  this.label = this.initialsText;
58
- console.log('initialsText');
59
- console.log(this.initialsText);
60
56
  }
61
57
  else {
62
58
  this.label = '';
@@ -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 ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Class definition\r\n * @property {string} text - text that is parsed for initials. If showHint is set to true this text will be shown in hint\r\n * @property {string} colorKey - value that is base for calculating color of avatar\r\n * @property {boolean} showHint - show hint with text\r\n * @property {string} initialsText - override internal extraction of initials and set avatar text directly\r\n */\r\n@Component({\r\n selector: 'sds-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\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 @Input() size: number = 2;\r\n\r\n public label: string;\r\n public showPicture: boolean;\r\n public colorClass: string;\r\n\r\n constructor(private _change: ChangeDetectorRef) {\r\n this.label = '';\r\n this.showPicture = false;\r\n this.colorClass = 'color18';\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.showPicture = !!this.pictureUri && this.pictureUri?.length > 0;\r\n this.setColorClass();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n console.log('change');\r\n console.log(changes);\r\n\r\n if (changes['initialsText']) {\r\n this.setLabel();\r\n }\r\n\r\n if (changes['text']) {\r\n this.setLabel();\r\n }\r\n\r\n if (changes['pictureUri']) {\r\n this.showPicture = !!this.pictureUri && this.pictureUri?.length > 0;\r\n }\r\n\r\n if (changes['colorKey']){\r\n this.setColorClass();\r\n }\r\n }\r\n\r\n private setColorClass(): void {\r\n if (this.colorKey) {\r\n this.colorClass = 'color' + this.getColorIndex(this.colorKey);\r\n } else {\r\n this.colorClass = 'color18';\r\n }\r\n }\r\n\r\n private setLabel(): void {\r\n if (this.initialsText && this.initialsText?.length > 0) {\r\n this.label = this.initialsText;\r\n\r\n console.log('initialsText');\r\n console.log(this.initialsText);\r\n\r\n } else {\r\n this.label = '';\r\n\r\n if (this.text && this.text?.length > 0){\r\n const initialsFromText = this.text\r\n .trim()\r\n .toUpperCase()\r\n .split(' ')\r\n .map((n) => n[0])\r\n .filter(x => !!x);\r\n\r\n if (initialsFromText.length > 0) {\r\n this.label = initialsFromText[0];\r\n if (initialsFromText.length > 1) {\r\n this.label = `${this.label}${initialsFromText[initialsFromText.length - 1]}`\r\n }\r\n }\r\n }\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}\r\n","<div\r\n class=\"avatar circle d-flex justify-content-center align-items-center\"\r\n [class]=\"colorClass\"\r\n [class.hasPicture]=\"showPicture\"\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 [style.font-size.rem]=\"size\"\r\n>\r\n <span \r\n *ngIf=\"!showPicture\" \r\n class=\"initials\"\r\n >\r\n {{ label }}\r\n </span>\r\n\r\n <img \r\n *ngIf=\"showPicture\" \r\n [src]=\"pictureUri\"\r\n alt=\"\" />\r\n</div>\r\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsAvatarGroupComponent implements OnInit, OnChanges {\r\n\r\n @Input() public stacked;\r\n @Input() public max?: number;\r\n @Input() public size: number;\r\n @Input() public borderColor?: string;\r\n @Input() public avatars: Array<AvatarModel>;\r\n @Input() public dropdownContents: 'all' | 'overflow' = 'all';\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';\r\n\r\n public overflowElementUUID: string;\r\n public showDropdown: boolean;\r\n public showOverflow: boolean;\r\n\r\n constructor() {\r\n // this.overflowElementUUID = 'sds-ag-' + crypto.randomUUID();\r\n\r\n // init values in constructor so storybook doesn't have issues with initial state\r\n\r\n this.overflowElementUUID = `sds-ag-${Math.ceil(Math.random() * 1000000)}`;\r\n this.overFlowBorderStyle = 'none';\r\n this.showDropdown = false;\r\n this.showOverflow = false;\r\n this.avatars = [];\r\n this.overflow = [];\r\n this.inflow = [];\r\n this.overflowCountDisplay = '';\r\n this.size = 2;\r\n this.stacked = false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['avatars'] || changes['max']){\r\n if (this.max && this.avatars) {\r\n let avatars = [...this.avatars];\r\n this.inflow = avatars.splice(0, this.max);\r\n this.overflow = avatars;\r\n this.showOverflow = this.overflow.length > 0;\r\n this.overflowCountDisplay = `+${Math.min(99, this.overflow.length)}`;\r\n this.overFlowBorderStyle = this.avatars.filter(x => x.borderStyle).length > 0 ? 'solid' : 'none';\r\n } else {\r\n this.inflow = [...this.avatars];\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","<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 [size]=\"size\"\r\n [style.margin-right.rem]=\"stacked ? size/-3 : size/15\"\r\n >\r\n </sds-avatar>\r\n\r\n <sds-avatar\r\n *ngIf=\"showOverflow\"\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 [size]=\"size\"\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 [wrapperAttr]=\"{ class: 'sds-avatar-group-overflow-popover' }\"\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 (dropdownContents === 'all' ? avatars : overflow)\"\r\n class=\"d-flex align-items-center p-1 my-1 mx-1 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 [size]=\"1.8\"\r\n >\r\n </sds-avatar>\r\n <div class=\"ms-2 ps-1\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>\r\n","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","i1.SdsAvatarComponent"],"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 ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n} from '@angular/core';\r\n\r\n/**\r\n * Class definition\r\n * @property {string} text - text that is parsed for initials. If showHint is set to true this text will be shown in hint\r\n * @property {string} colorKey - value that is base for calculating color of avatar\r\n * @property {boolean} showHint - show hint with text\r\n * @property {string} initialsText - override internal extraction of initials and set avatar text directly\r\n */\r\n@Component({\r\n selector: 'sds-avatar',\r\n templateUrl: './avatar.component.html',\r\n styleUrls: ['./avatar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\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 @Input() size: number = 2;\r\n\r\n public label: string;\r\n public showPicture: boolean;\r\n public colorClass: string;\r\n\r\n constructor(private _change: ChangeDetectorRef) {\r\n this.label = '';\r\n this.showPicture = false;\r\n this.colorClass = 'color18';\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.showPicture = !!this.pictureUri && this.pictureUri?.length > 0;\r\n this.setColorClass();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['initialsText']) {\r\n this.setLabel();\r\n }\r\n\r\n if (changes['text']) {\r\n this.setLabel();\r\n }\r\n\r\n if (changes['pictureUri']) {\r\n this.showPicture = !!this.pictureUri && this.pictureUri?.length > 0;\r\n }\r\n\r\n if (changes['colorKey']){\r\n this.setColorClass();\r\n }\r\n }\r\n\r\n private setColorClass(): void {\r\n if (this.colorKey) {\r\n this.colorClass = 'color' + this.getColorIndex(this.colorKey);\r\n } else {\r\n this.colorClass = 'color18';\r\n }\r\n }\r\n\r\n private setLabel(): void {\r\n if (this.initialsText && this.initialsText?.length > 0) {\r\n this.label = this.initialsText;\r\n } else {\r\n this.label = '';\r\n\r\n if (this.text && this.text?.length > 0){\r\n const initialsFromText = this.text\r\n .trim()\r\n .toUpperCase()\r\n .split(' ')\r\n .map((n) => n[0])\r\n .filter(x => !!x);\r\n\r\n if (initialsFromText.length > 0) {\r\n this.label = initialsFromText[0];\r\n if (initialsFromText.length > 1) {\r\n this.label = `${this.label}${initialsFromText[initialsFromText.length - 1]}`\r\n }\r\n }\r\n }\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}\r\n","<div\r\n class=\"avatar circle d-flex justify-content-center align-items-center\"\r\n [class]=\"colorClass\"\r\n [class.hasPicture]=\"showPicture\"\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 [style.font-size.rem]=\"size\"\r\n>\r\n <span \r\n *ngIf=\"!showPicture\" \r\n class=\"initials\"\r\n >\r\n {{ label }}\r\n </span>\r\n\r\n <img \r\n *ngIf=\"showPicture\" \r\n [src]=\"pictureUri\"\r\n alt=\"\" />\r\n</div>\r\n","import { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsAvatarGroupComponent implements OnInit, OnChanges {\r\n\r\n @Input() public stacked;\r\n @Input() public max?: number;\r\n @Input() public size: number;\r\n @Input() public borderColor?: string;\r\n @Input() public avatars: Array<AvatarModel>;\r\n @Input() public dropdownContents: 'all' | 'overflow' = 'all';\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';\r\n\r\n public overflowElementUUID: string;\r\n public showDropdown: boolean;\r\n public showOverflow: boolean;\r\n\r\n constructor() {\r\n // this.overflowElementUUID = 'sds-ag-' + crypto.randomUUID();\r\n\r\n // init values in constructor so storybook doesn't have issues with initial state\r\n\r\n this.overflowElementUUID = `sds-ag-${Math.ceil(Math.random() * 1000000)}`;\r\n this.overFlowBorderStyle = 'none';\r\n this.showDropdown = false;\r\n this.showOverflow = false;\r\n this.avatars = [];\r\n this.overflow = [];\r\n this.inflow = [];\r\n this.overflowCountDisplay = '';\r\n this.size = 2;\r\n this.stacked = false;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['avatars'] || changes['max']){\r\n if (this.max && this.avatars) {\r\n let avatars = [...this.avatars];\r\n this.inflow = avatars.splice(0, this.max);\r\n this.overflow = avatars;\r\n this.showOverflow = this.overflow.length > 0;\r\n this.overflowCountDisplay = `+${Math.min(99, this.overflow.length)}`;\r\n this.overFlowBorderStyle = this.avatars.filter(x => x.borderStyle).length > 0 ? 'solid' : 'none';\r\n } else {\r\n this.inflow = [...this.avatars];\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","<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 [size]=\"size\"\r\n [style.margin-right.rem]=\"stacked ? size/-3 : size/15\"\r\n >\r\n </sds-avatar>\r\n\r\n <sds-avatar\r\n *ngIf=\"showOverflow\"\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 [size]=\"size\"\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 [wrapperAttr]=\"{ class: 'sds-avatar-group-overflow-popover' }\"\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 (dropdownContents === 'all' ? avatars : overflow)\"\r\n class=\"d-flex align-items-center p-1 my-1 mx-1 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 [size]=\"1.8\"\r\n >\r\n </sds-avatar>\r\n <div class=\"ms-2 ps-1\">{{avatar.text}}</div>\r\n </div>\r\n </div>\r\n </dx-scroll-view>\r\n </dx-popover>\r\n</div>\r\n","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","i1.SdsAvatarComponent"],"mappings":"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"}
@@ -125,7 +125,7 @@ class SdsBadgeDirective {
125
125
  setBadgePosition() {
126
126
  if (this.badgeComponentRef) {
127
127
  this.badgeComponentRef.instance.left = this.host.nativeElement.offsetLeft + this.host.nativeElement.offsetWidth;
128
- console.log(`offsetLeft ${this.host.nativeElement.offsetLeft}, offsetWidth: ${this.host.nativeElement.offsetWidth}`);
128
+ // console.log(`offsetLeft ${this.host.nativeElement.offsetLeft}, offsetWidth: ${this.host.nativeElement.offsetWidth}`);
129
129
  }
130
130
  }
131
131
  }
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-badge.mjs","sources":["../../../projects/ngx-sds-components/src/lib/badge/components/badge.component.ts","../../../projects/ngx-sds-components/src/lib/badge/components/badge.component.html","../../../projects/ngx-sds-components/src/lib/badge/badge.directive.ts","../../../projects/ngx-sds-components/src/lib/badge/badge.module.ts","../../../projects/ngx-sds-components/src/lib/badge/spicainternational-ngx-sds-components-src-lib-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { BadgeSize, BadgeVariant } from '../badge.types';\r\n\r\n@Component({\r\n selector: 'sds-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsBadgeComponent implements OnInit {\r\n private _text: string = '';\r\n private _size: BadgeSize = 'default';\r\n private _variant: BadgeVariant = 'primary';\r\n private _left: number = 0;\r\n\r\n\r\n public get text() {\r\n return this._text;\r\n }\r\n\r\n public set text(value: string) {\r\n if (this._text !== value) {\r\n this._text = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n public get size() {\r\n return this._size;\r\n }\r\n\r\n public set size(value: BadgeSize) {\r\n if (this._size !== value) {\r\n this._size = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n public get variant() {\r\n return this._variant;\r\n }\r\n\r\n public set variant(value: BadgeVariant) {\r\n if (this._variant !== value) {\r\n this._variant = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n public get left() {\r\n return this._left;\r\n }\r\n\r\n public set left(value: number) {\r\n if (this._left !== value) {\r\n this._left = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n \r\n \r\n\r\n constructor(\r\n private readonly cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n\r\n private refresh(){\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n","<div \r\n class=\"sds-badge\"\r\n [ngClass]=\"[variant]\"\r\n [style.left.px]=\"left\"\r\n [class.default]=\"size === 'default'\"\r\n [class.small]=\"size === 'small'\"\r\n >\r\n <span *ngIf=\"size=='default'\">{{text}}</span>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { BadgeSize, BadgeVariant } from './badge.types';\r\nimport { SdsBadgeComponent } from './components/badge.component';\r\n\r\n@Directive({\r\n selector: '[sdsBadge]',\r\n})\r\nexport class SdsBadgeDirective implements OnInit, OnChanges, OnDestroy, AfterViewInit {\r\n @Input() sdsBadge = '';\r\n @Input() size: BadgeSize = 'default';\r\n @Input() variant: BadgeVariant = 'primary';\r\n\r\n private badgeComponentRef: ComponentRef<any> | null = null;\r\n private observer: any; //ResizeObserver = null;\r\n\r\n constructor(\r\n private host: ElementRef,\r\n private appRef: ApplicationRef,\r\n private viewContainerRef: ViewContainerRef\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initializeBadge();\r\n }\r\n\r\n ngOnInit(): void {\r\n const observer = new ResizeObserver(_ => {\r\n if (this.badgeComponentRef) {\r\n this.setBadgePosition();\r\n // this.badgeComponentRef.instance.left = this.host.nativeElement.offsetWidth;\r\n }\r\n });\r\n \r\n observer.observe(this.host.nativeElement);\r\n }; \r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['sdsBadge'] && !changes['sdsBadge'].firstChange) {\r\n const value = `${changes['sdsBadge'].currentValue}`.trim();\r\n if (value?.length > 0) {\r\n this.initializeBadge();\r\n } else {\r\n this.destroyBadgeComponentRef();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.observer.unobserve(this.host.nativeElement);\r\n this.observer.disconnect();\r\n\r\n this.destroyBadgeComponentRef();\r\n }\r\n\r\n private initializeBadge() {\r\n if (this.badgeComponentRef === null) {\r\n if (this.sdsBadge) {\r\n this.badgeComponentRef = this.viewContainerRef.createComponent(SdsBadgeComponent);\r\n this.badgeComponentRef.instance.text = this.sdsBadge;\r\n this.badgeComponentRef.instance.variant = this.variant;\r\n this.badgeComponentRef.instance.size = this.size;\r\n\r\n this.setBadgePosition();\r\n }\r\n } else {\r\n this.badgeComponentRef.instance.text = this.sdsBadge;\r\n this.badgeComponentRef.instance.variant = this.variant;\r\n this.badgeComponentRef.instance.size = this.size;\r\n\r\n this.setBadgePosition();\r\n }\r\n }\r\n\r\n private destroyBadgeComponentRef(){\r\n if (this.badgeComponentRef !== null) {\r\n this.appRef.detachView(this.badgeComponentRef.hostView);\r\n this.badgeComponentRef.destroy();\r\n this.badgeComponentRef = null;\r\n } \r\n }\r\n\r\n private setBadgePosition(){\r\n if (this.badgeComponentRef) {\r\n this.badgeComponentRef.instance.left = this.host.nativeElement.offsetLeft + this.host.nativeElement.offsetWidth;\r\n console.log(`offsetLeft ${this.host.nativeElement.offsetLeft}, offsetWidth: ${this.host.nativeElement.offsetWidth}`);\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsBadgeDirective } from './badge.directive';\r\nimport { SdsBadgeComponent } from './components/badge.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SdsBadgeDirective,\r\n SdsBadgeComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n SdsBadgeDirective\r\n ]\r\n})\r\nexport class SdsBadgeModule { }\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-badge.mjs","sources":["../../../projects/ngx-sds-components/src/lib/badge/components/badge.component.ts","../../../projects/ngx-sds-components/src/lib/badge/components/badge.component.html","../../../projects/ngx-sds-components/src/lib/badge/badge.directive.ts","../../../projects/ngx-sds-components/src/lib/badge/badge.module.ts","../../../projects/ngx-sds-components/src/lib/badge/spicainternational-ngx-sds-components-src-lib-badge.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { BadgeSize, BadgeVariant } from '../badge.types';\r\n\r\n@Component({\r\n selector: 'sds-badge',\r\n templateUrl: './badge.component.html',\r\n styleUrls: ['./badge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SdsBadgeComponent implements OnInit {\r\n private _text: string = '';\r\n private _size: BadgeSize = 'default';\r\n private _variant: BadgeVariant = 'primary';\r\n private _left: number = 0;\r\n\r\n\r\n public get text() {\r\n return this._text;\r\n }\r\n\r\n public set text(value: string) {\r\n if (this._text !== value) {\r\n this._text = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n public get size() {\r\n return this._size;\r\n }\r\n\r\n public set size(value: BadgeSize) {\r\n if (this._size !== value) {\r\n this._size = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n public get variant() {\r\n return this._variant;\r\n }\r\n\r\n public set variant(value: BadgeVariant) {\r\n if (this._variant !== value) {\r\n this._variant = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n public get left() {\r\n return this._left;\r\n }\r\n\r\n public set left(value: number) {\r\n if (this._left !== value) {\r\n this._left = value;\r\n this.refresh();\r\n }\r\n }\r\n\r\n \r\n \r\n\r\n constructor(\r\n private readonly cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n\r\n private refresh(){\r\n this.cdRef.detectChanges();\r\n }\r\n}\r\n","<div \r\n class=\"sds-badge\"\r\n [ngClass]=\"[variant]\"\r\n [style.left.px]=\"left\"\r\n [class.default]=\"size === 'default'\"\r\n [class.small]=\"size === 'small'\"\r\n >\r\n <span *ngIf=\"size=='default'\">{{text}}</span>\r\n</div>\r\n","import {\r\n AfterViewInit,\r\n ApplicationRef,\r\n ComponentRef,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { BadgeSize, BadgeVariant } from './badge.types';\r\nimport { SdsBadgeComponent } from './components/badge.component';\r\n\r\n@Directive({\r\n selector: '[sdsBadge]',\r\n})\r\nexport class SdsBadgeDirective implements OnInit, OnChanges, OnDestroy, AfterViewInit {\r\n @Input() sdsBadge = '';\r\n @Input() size: BadgeSize = 'default';\r\n @Input() variant: BadgeVariant = 'primary';\r\n\r\n private badgeComponentRef: ComponentRef<any> | null = null;\r\n private observer: any; //ResizeObserver = null;\r\n\r\n constructor(\r\n private host: ElementRef,\r\n private appRef: ApplicationRef,\r\n private viewContainerRef: ViewContainerRef\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.initializeBadge();\r\n }\r\n\r\n ngOnInit(): void {\r\n const observer = new ResizeObserver(_ => {\r\n if (this.badgeComponentRef) {\r\n this.setBadgePosition();\r\n // this.badgeComponentRef.instance.left = this.host.nativeElement.offsetWidth;\r\n }\r\n });\r\n \r\n observer.observe(this.host.nativeElement);\r\n }; \r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['sdsBadge'] && !changes['sdsBadge'].firstChange) {\r\n const value = `${changes['sdsBadge'].currentValue}`.trim();\r\n if (value?.length > 0) {\r\n this.initializeBadge();\r\n } else {\r\n this.destroyBadgeComponentRef();\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.observer.unobserve(this.host.nativeElement);\r\n this.observer.disconnect();\r\n\r\n this.destroyBadgeComponentRef();\r\n }\r\n\r\n private initializeBadge() {\r\n if (this.badgeComponentRef === null) {\r\n if (this.sdsBadge) {\r\n this.badgeComponentRef = this.viewContainerRef.createComponent(SdsBadgeComponent);\r\n this.badgeComponentRef.instance.text = this.sdsBadge;\r\n this.badgeComponentRef.instance.variant = this.variant;\r\n this.badgeComponentRef.instance.size = this.size;\r\n\r\n this.setBadgePosition();\r\n }\r\n } else {\r\n this.badgeComponentRef.instance.text = this.sdsBadge;\r\n this.badgeComponentRef.instance.variant = this.variant;\r\n this.badgeComponentRef.instance.size = this.size;\r\n\r\n this.setBadgePosition();\r\n }\r\n }\r\n\r\n private destroyBadgeComponentRef(){\r\n if (this.badgeComponentRef !== null) {\r\n this.appRef.detachView(this.badgeComponentRef.hostView);\r\n this.badgeComponentRef.destroy();\r\n this.badgeComponentRef = null;\r\n } \r\n }\r\n\r\n private setBadgePosition(){\r\n if (this.badgeComponentRef) {\r\n this.badgeComponentRef.instance.left = this.host.nativeElement.offsetLeft + this.host.nativeElement.offsetWidth;\r\n // console.log(`offsetLeft ${this.host.nativeElement.offsetLeft}, offsetWidth: ${this.host.nativeElement.offsetWidth}`);\r\n }\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsBadgeDirective } from './badge.directive';\r\nimport { SdsBadgeComponent } from './components/badge.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n SdsBadgeDirective,\r\n SdsBadgeComponent\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n SdsBadgeDirective\r\n ]\r\n})\r\nexport class SdsBadgeModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,19 +2,90 @@ import * as i0 from '@angular/core';
2
2
  import { Component, Input, NgModule } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import { faChevronRight } from '@fortawesome/pro-regular-svg-icons';
5
+ import { faAngleLeft } from '@fortawesome/pro-solid-svg-icons';
6
+ import { Subject } from 'rxjs';
6
7
  import * as i1 from '@fortawesome/angular-fontawesome';
7
8
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
8
9
 
10
+ // import { faSidebar } from '@fortawesome/pro-light-svg-icons';
11
+ // import { IconDefinition, faSidebar, faChevronRight, faGripVertical, faGripLinesVertical, faChevronLeft, faArrowRightFromBracket } from '@fortawesome/pro-regular-svg-icons';
9
12
  class SdsSideBarComponent {
10
13
  constructor() {
11
- this.showSideBar = false;
12
- this.product = '';
13
- this.isMainSideBar = false;
14
- this.showSideBarToggleButton = false;
15
- this.caretIcon = faChevronRight;
14
+ /**
15
+ * Define when the hide panel button is shown.
16
+ * Default is 'auto' which will only show the button when the users hovers over the panel.
17
+ * 'always' will always show the button.
18
+ *
19
+ * @type {('always' | 'auto')}
20
+ * @memberof SdsSideBarComponent
21
+ */
22
+ this.showCloseButton = 'auto';
23
+ /**
24
+ * Pull out mode will show the side bar as user hovers over the left side of the screen
25
+ * When side bar is in pull out mode it will be rendered over the main contents.
26
+ *
27
+ * @type {boolean}
28
+ * @memberof SdsSideBarComponent
29
+ */
30
+ this.enablePullOutMode = false;
31
+ /**
32
+ * Define the width of the side bar in rem.
33
+ *
34
+ * @type {number}
35
+ * @memberof SdsSideBarComponent
36
+ */
37
+ this.widthRem = 14;
38
+ /**
39
+ * Product name defines the color scheme of the side bar.
40
+ * Default is 'all-hours'.
41
+ * Options: 'all-hours', 'door-cloud', 'my-hours', 'time-and-space'
42
+ *
43
+ * @type {string}
44
+ * @memberof SdsSideBarComponent
45
+ */
46
+ this.product = 'all-hours';
47
+ /**
48
+ * Define the width of the screen that triggers hiding of the side bar.
49
+ * Note that the width is checked at the component creation and not when the screen is resized.
50
+ * If user resizes the screen he must manually hide the side bar.
51
+ *
52
+ * @type {(number | undefined)}
53
+ * @memberof SdsSideBarComponent
54
+ */
55
+ this.autoHideScreenWidth = 992;
56
+ this.showSideBar = true;
57
+ this.pullOutSideBar = false;
58
+ this.caretIcon = faAngleLeft;
59
+ this.autoHideActive = false;
60
+ this.screenWidth = 0;
61
+ this.componentInitialized = false;
62
+ this._checkAutoHide$ = new Subject();
63
+ this._checkAutoHide$.subscribe(() => {
64
+ console.log('check autohide');
65
+ if (this.componentInitialized && this.autoHideScreenWidth) {
66
+ console.log('this.autoHideScreenWidthRem', this.autoHideScreenWidth);
67
+ this.autoHideActive = this.screenWidth < this.autoHideScreenWidth;
68
+ console.log('hideSideBar', this.autoHideActive);
69
+ if (this.autoHideActive) {
70
+ this.showSideBar = false;
71
+ }
72
+ }
73
+ });
74
+ }
75
+ ngOnDestroy() {
76
+ this._checkAutoHide$.unsubscribe();
77
+ }
78
+ ngOnChanges(changes) {
79
+ if (changes['autoHideScreenWidthRem']) {
80
+ this._checkAutoHide$.next();
81
+ }
82
+ }
83
+ ngOnInit() {
84
+ this.componentInitialized = true;
85
+ this.screenWidth = window.innerWidth;
86
+ console.log('screenWidth', this.screenWidth);
87
+ this._checkAutoHide$.next();
16
88
  }
17
- ngOnInit() { }
18
89
  toggleSideBar(state) {
19
90
  if (state !== undefined) {
20
91
  this.showSideBar = state;
@@ -25,19 +96,23 @@ class SdsSideBarComponent {
25
96
  }
26
97
  }
27
98
  SdsSideBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsSideBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
- SdsSideBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsSideBarComponent, selector: "sds-side-bar", inputs: { product: "product", isMainSideBar: "isMainSideBar", showSideBarToggleButton: "showSideBarToggleButton", hideSideBarText: "hideSideBarText", showSideBarText: "showSideBarText" }, ngImport: i0, template: "<aside\r\n class=\"sds-side-bar \"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-main-side-bar] = \"isMainSideBar\"\r\n [class.hide-sidebar]=\"!showSideBar\"\r\n>\r\n <div class=\"d-flex flex-column h-100\">\r\n <div class=\"d-flex flex-column flex-grow-0 w-100 h-100\">\r\n <div\r\n *ngIf=\"showSideBarToggleButton\"\r\n class=\"toggle-side-bar-button position-absolute d-md-none rounded-circle toggleSideBar d-flex justify-content-center justify-content-center align-items-center\"\r\n [class.open]=\"showSideBar\"\r\n [title]=\"showSideBar ? hideSideBarText : showSideBarText\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <div class=\"toggle-side-bar-icon\">\r\n <fa-icon [icon]=\"caretIcon\"></fa-icon>\r\n </div> \r\n </div>\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</aside>\r\n", styles: [".toggle-side-bar-button{transition:transform .2s linear}.toggle-side-bar-button.open .toggle-side-bar-icon{transform:rotate(-180deg)}\n"], 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"] }] });
99
+ SdsSideBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsSideBarComponent, selector: "sds-side-bar", inputs: { showCloseButton: "showCloseButton", enablePullOutMode: "enablePullOutMode", widthRem: "widthRem", product: "product", autoHideScreenWidth: "autoHideScreenWidth", closeButtonHint: "closeButtonHint", openButtonHint: "openButtonHint" }, usesOnChanges: true, ngImport: i0, template: "<div \r\n class=\"vh-100 position-relative sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"showSideBar\" \r\n >\r\n\r\n <!-- CLOSE SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || showSideBar)\"\r\n class=\"sds-side-bar-button-container close-side-bar-button\"\r\n [class.hidden]=\"!showSideBar\"\r\n [class.always-show]=\"showSideBar && showCloseButton === 'always'\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"closeButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\" \r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <!-- OPEN SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || !showSideBar)\" \r\n class=\"sds-side-bar-button-container open-side-bar-button\"\r\n [class.hidden]=\"showSideBar\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"openButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\"\r\n [rotate]=\"180\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.shadow]=\"pullOutSideBar\"\r\n [class.sds-side-bar-open]=\"showSideBar\"\r\n [style.width.rem]=\"(showSideBar || pullOutSideBar) ? widthRem : enablePullOutMode ? 0.75 : 0\"\r\n \r\n (mouseleave)=\"pullOutSideBar = false\"\r\n >\r\n <div \r\n *ngIf=\"enablePullOutMode && !showSideBar && !pullOutSideBar\"\r\n class=\"sds-side-bar-pull-out h-100 position-absolute\" \r\n style=\"width: 0.75rem;\"\r\n (mouseenter)=\"pullOutSideBar = true\"\r\n >\r\n </div>\r\n\r\n <div class=\"d-flex flex-column flex-grow-0 h-100\" \r\n [style.width.rem]=\"widthRem\">\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.3s;overflow-x:hidden;position:absolute;z-index:10}.sds-side-bar.sds-side-bar-open{position:relative}.sds-side-bar:has(.sds-side-bar-pull-out:hover){width:var(--sds-side-bar-width)!important}.sds-side-bar .sds-side-bar-pull-out{background-color:#f8f9fa}.sds-side-bar-container .sds-side-bar-button-container{position:absolute;z-index:11;height:2.2rem;width:2.2rem;top:.85rem;border-radius:50%;background-color:#fff}.sds-side-bar-container .sds-side-bar-button-container.always-show{visibility:visible;opacity:1}.sds-side-bar-container button{height:2.2rem;width:2.2rem;display:flex;align-items:center;justify-content:center;border:1px solid #CED4DA;border-radius:50%;color:#375d75!important;line-height:1rem}.sds-side-bar-container button:hover{color:#f8f9fa!important}.sds-side-bar-container button .hot-spot{position:absolute;inset:-1rem}.sds-side-bar-container .open-side-bar-button{top:.85rem;right:-2.3rem;transition:visibility 0ms linear .18s;transition:opacity 0ms linear .18s;visibility:visible;opacity:1}.sds-side-bar-container .open-side-bar-button.hidden{visibility:hidden;opacity:0}.sds-side-bar-container:hover .close-side-bar-button:not(.hidden){visibility:visible;opacity:1}.sds-side-bar-container .close-side-bar-button{right:-1.1rem;visibility:hidden;transition:visibility 0s linear;transition:opacity .3s ease-in;opacity:0}:host{display:block}\n"], 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"] }] });
29
100
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsSideBarComponent, decorators: [{
30
101
  type: Component,
31
- args: [{ selector: 'sds-side-bar', template: "<aside\r\n class=\"sds-side-bar \"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-main-side-bar] = \"isMainSideBar\"\r\n [class.hide-sidebar]=\"!showSideBar\"\r\n>\r\n <div class=\"d-flex flex-column h-100\">\r\n <div class=\"d-flex flex-column flex-grow-0 w-100 h-100\">\r\n <div\r\n *ngIf=\"showSideBarToggleButton\"\r\n class=\"toggle-side-bar-button position-absolute d-md-none rounded-circle toggleSideBar d-flex justify-content-center justify-content-center align-items-center\"\r\n [class.open]=\"showSideBar\"\r\n [title]=\"showSideBar ? hideSideBarText : showSideBarText\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <div class=\"toggle-side-bar-icon\">\r\n <fa-icon [icon]=\"caretIcon\"></fa-icon>\r\n </div> \r\n </div>\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</aside>\r\n", styles: [".toggle-side-bar-button{transition:transform .2s linear}.toggle-side-bar-button.open .toggle-side-bar-icon{transform:rotate(-180deg)}\n"] }]
32
- }], ctorParameters: function () { return []; }, propDecorators: { product: [{
102
+ args: [{ selector: 'sds-side-bar', template: "<div \r\n class=\"vh-100 position-relative sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"showSideBar\" \r\n >\r\n\r\n <!-- CLOSE SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || showSideBar)\"\r\n class=\"sds-side-bar-button-container close-side-bar-button\"\r\n [class.hidden]=\"!showSideBar\"\r\n [class.always-show]=\"showSideBar && showCloseButton === 'always'\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"closeButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\" \r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <!-- OPEN SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || !showSideBar)\" \r\n class=\"sds-side-bar-button-container open-side-bar-button\"\r\n [class.hidden]=\"showSideBar\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"openButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\"\r\n [rotate]=\"180\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.shadow]=\"pullOutSideBar\"\r\n [class.sds-side-bar-open]=\"showSideBar\"\r\n [style.width.rem]=\"(showSideBar || pullOutSideBar) ? widthRem : enablePullOutMode ? 0.75 : 0\"\r\n \r\n (mouseleave)=\"pullOutSideBar = false\"\r\n >\r\n <div \r\n *ngIf=\"enablePullOutMode && !showSideBar && !pullOutSideBar\"\r\n class=\"sds-side-bar-pull-out h-100 position-absolute\" \r\n style=\"width: 0.75rem;\"\r\n (mouseenter)=\"pullOutSideBar = true\"\r\n >\r\n </div>\r\n\r\n <div class=\"d-flex flex-column flex-grow-0 h-100\" \r\n [style.width.rem]=\"widthRem\">\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n\r\n </aside>\r\n</div>", styles: [".sds-side-bar{transition:.3s;overflow-x:hidden;position:absolute;z-index:10}.sds-side-bar.sds-side-bar-open{position:relative}.sds-side-bar:has(.sds-side-bar-pull-out:hover){width:var(--sds-side-bar-width)!important}.sds-side-bar .sds-side-bar-pull-out{background-color:#f8f9fa}.sds-side-bar-container .sds-side-bar-button-container{position:absolute;z-index:11;height:2.2rem;width:2.2rem;top:.85rem;border-radius:50%;background-color:#fff}.sds-side-bar-container .sds-side-bar-button-container.always-show{visibility:visible;opacity:1}.sds-side-bar-container button{height:2.2rem;width:2.2rem;display:flex;align-items:center;justify-content:center;border:1px solid #CED4DA;border-radius:50%;color:#375d75!important;line-height:1rem}.sds-side-bar-container button:hover{color:#f8f9fa!important}.sds-side-bar-container button .hot-spot{position:absolute;inset:-1rem}.sds-side-bar-container .open-side-bar-button{top:.85rem;right:-2.3rem;transition:visibility 0ms linear .18s;transition:opacity 0ms linear .18s;visibility:visible;opacity:1}.sds-side-bar-container .open-side-bar-button.hidden{visibility:hidden;opacity:0}.sds-side-bar-container:hover .close-side-bar-button:not(.hidden){visibility:visible;opacity:1}.sds-side-bar-container .close-side-bar-button{right:-1.1rem;visibility:hidden;transition:visibility 0s linear;transition:opacity .3s ease-in;opacity:0}:host{display:block}\n"] }]
103
+ }], ctorParameters: function () { return []; }, propDecorators: { showCloseButton: [{
104
+ type: Input
105
+ }], enablePullOutMode: [{
106
+ type: Input
107
+ }], widthRem: [{
33
108
  type: Input
34
- }], isMainSideBar: [{
109
+ }], product: [{
35
110
  type: Input
36
- }], showSideBarToggleButton: [{
111
+ }], autoHideScreenWidth: [{
37
112
  type: Input
38
- }], hideSideBarText: [{
113
+ }], closeButtonHint: [{
39
114
  type: Input
40
- }], showSideBarText: [{
115
+ }], openButtonHint: [{
41
116
  type: Input
42
117
  }] } });
43
118
 
@@ -1 +1 @@
1
- {"version":3,"file":"spicainternational-ngx-sds-components-src-lib-side-bar.mjs","sources":["../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.ts","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.html","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.module.ts","../../../projects/ngx-sds-components/src/lib/side-bar/spicainternational-ngx-sds-components-src-lib-side-bar.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\r\nimport { IconDefinition, faChevronRight } from '@fortawesome/pro-regular-svg-icons';\r\n\r\n@Component({\r\n selector: 'sds-side-bar',\r\n templateUrl: './side-bar.component.html',\r\n styleUrls: ['./side-bar.component.scss'],\r\n})\r\nexport class SdsSideBarComponent implements OnInit {\r\n\r\n public showSideBar = false;\r\n\r\n @Input() product:string = '';\r\n @Input() isMainSideBar: boolean = false;\r\n @Input() showSideBarToggleButton: boolean = false;\r\n\r\n @Input() public hideSideBarText?: string;\r\n @Input() public showSideBarText?: string;\r\n\r\n\r\n public caretIcon: IconDefinition = faChevronRight;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public toggleSideBar(state?: boolean) {\r\n if (state !== undefined) {\r\n this.showSideBar = state;\r\n } else {\r\n this.showSideBar = !this.showSideBar;\r\n }\r\n } \r\n}\r\n","<aside\r\n class=\"sds-side-bar \"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.sds-main-side-bar] = \"isMainSideBar\"\r\n [class.hide-sidebar]=\"!showSideBar\"\r\n>\r\n <div class=\"d-flex flex-column h-100\">\r\n <div class=\"d-flex flex-column flex-grow-0 w-100 h-100\">\r\n <div\r\n *ngIf=\"showSideBarToggleButton\"\r\n class=\"toggle-side-bar-button position-absolute d-md-none rounded-circle toggleSideBar d-flex justify-content-center justify-content-center align-items-center\"\r\n [class.open]=\"showSideBar\"\r\n [title]=\"showSideBar ? hideSideBarText : showSideBarText\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <div class=\"toggle-side-bar-icon\">\r\n <fa-icon [icon]=\"caretIcon\"></fa-icon>\r\n </div> \r\n </div>\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n </div>\r\n</aside>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsSideBarComponent } from './side-bar.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n\r\n\r\nconst components = [\r\n SdsSideBarComponent\r\n]\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule, FontAwesomeModule\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsSideBarModule { }\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-side-bar.mjs","sources":["../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.ts","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.component.html","../../../projects/ngx-sds-components/src/lib/side-bar/side-bar.module.ts","../../../projects/ngx-sds-components/src/lib/side-bar/spicainternational-ngx-sds-components-src-lib-side-bar.ts"],"sourcesContent":["import { Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\r\nimport { IconDefinition, faAngleLeft, faChevronRight } from '@fortawesome/pro-solid-svg-icons';\r\nimport { Subject } from 'rxjs';\r\n// import { faSidebar } from '@fortawesome/pro-light-svg-icons';\r\n// import { IconDefinition, faSidebar, faChevronRight, faGripVertical, faGripLinesVertical, faChevronLeft, faArrowRightFromBracket } from '@fortawesome/pro-regular-svg-icons';\r\n\r\n@Component({\r\n selector: 'sds-side-bar',\r\n templateUrl: './side-bar.component.html',\r\n styleUrls: ['./side-bar.component.scss'],\r\n})\r\nexport class SdsSideBarComponent implements OnInit, OnChanges, OnDestroy {\r\n\r\n /**\r\n * Define when the hide panel button is shown. \r\n * Default is 'auto' which will only show the button when the users hovers over the panel.\r\n * 'always' will always show the button.\r\n *\r\n * @type {('always' | 'auto')}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public showCloseButton: 'always' | 'auto' = 'auto';\r\n \r\n /**\r\n * Pull out mode will show the side bar as user hovers over the left side of the screen\r\n * When side bar is in pull out mode it will be rendered over the main contents.\r\n *\r\n * @type {boolean}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public enablePullOutMode: boolean = false;\r\n\r\n /**\r\n * Define the width of the side bar in rem.\r\n *\r\n * @type {number}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public widthRem: number = 14;\r\n\r\n /**\r\n * Product name defines the color scheme of the side bar.\r\n * Default is 'all-hours'.\r\n * Options: 'all-hours', 'door-cloud', 'my-hours', 'time-and-space'\r\n *\r\n * @type {string}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() product: 'all-hours' | 'door-cloud' | 'my-hours' | 'time-and-space' = 'all-hours';\r\n\r\n /**\r\n * Define the width of the screen that triggers hiding of the side bar.\r\n * Note that the width is checked at the component creation and not when the screen is resized.\r\n * If user resizes the screen he must manually hide the side bar.\r\n *\r\n * @type {(number | undefined)}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public autoHideScreenWidth: number | undefined = 992;\r\n\r\n /**\r\n * Define the hint of the hide button.\r\n *\r\n * @type {string}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public closeButtonHint?: string;\r\n\r\n /**\r\n * Define the hint of the show button.\r\n *\r\n * @type {string}\r\n * @memberof SdsSideBarComponent\r\n */\r\n @Input() public openButtonHint?: string;\r\n\r\n\r\n public showSideBar = true;\r\n public pullOutSideBar = false; \r\n public caretIcon: IconDefinition = faAngleLeft;\r\n public autoHideActive: boolean = false;\r\n\r\n private screenWidth: number = 0;\r\n private componentInitialized: boolean = false;\r\n\r\n private _checkAutoHide$ = new Subject<void>();\r\n\r\n constructor() {\r\n\r\n this._checkAutoHide$.subscribe(() => {\r\n console.log('check autohide');\r\n if (this.componentInitialized && this.autoHideScreenWidth) {\r\n console.log('this.autoHideScreenWidthRem', this.autoHideScreenWidth);\r\n\r\n this.autoHideActive = this.screenWidth < this.autoHideScreenWidth;\r\n\r\n console.log('hideSideBar', this.autoHideActive);\r\n\r\n if (this.autoHideActive) {\r\n this.showSideBar = false;\r\n }\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this._checkAutoHide$.unsubscribe();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['autoHideScreenWidthRem']) {\r\n this._checkAutoHide$.next();\r\n }\r\n }\r\n\r\n ngOnInit() { \r\n this.componentInitialized = true;\r\n this.screenWidth = window.innerWidth; \r\n console.log('screenWidth', this.screenWidth);\r\n this._checkAutoHide$.next();\r\n } \r\n\r\n public toggleSideBar(state?: boolean) {\r\n if (state !== undefined) {\r\n this.showSideBar = state;\r\n } else {\r\n this.showSideBar = !this.showSideBar;\r\n }\r\n } \r\n}\r\n","<div \r\n class=\"vh-100 position-relative sds-side-bar-container\"\r\n [class.sds-side-bar-open]=\"showSideBar\" \r\n >\r\n\r\n <!-- CLOSE SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || showSideBar)\"\r\n class=\"sds-side-bar-button-container close-side-bar-button\"\r\n [class.hidden]=\"!showSideBar\"\r\n [class.always-show]=\"showSideBar && showCloseButton === 'always'\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"closeButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\" \r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <!-- OPEN SIDEBAR -->\r\n <div \r\n *ngIf=\"!pullOutSideBar && (true || !showSideBar)\" \r\n class=\"sds-side-bar-button-container open-side-bar-button\"\r\n [class.hidden]=\"showSideBar\"\r\n >\r\n \r\n <button\r\n class=\"btn btn-outline-primary shadow-sm\"\r\n [title]=\"openButtonHint\"\r\n (click)=\"toggleSideBar()\"\r\n >\r\n <fa-icon \r\n [icon]=\"caretIcon\"\r\n [rotate]=\"180\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"hot-spot\"></div>\r\n\r\n </button>\r\n </div>\r\n\r\n <aside\r\n class=\"sds-side-bar h-100 border-end\"\r\n [class]=\"(product ? 'product-' + product : null)\"\r\n [class.shadow]=\"pullOutSideBar\"\r\n [class.sds-side-bar-open]=\"showSideBar\"\r\n [style.width.rem]=\"(showSideBar || pullOutSideBar) ? widthRem : enablePullOutMode ? 0.75 : 0\"\r\n \r\n (mouseleave)=\"pullOutSideBar = false\"\r\n >\r\n <div \r\n *ngIf=\"enablePullOutMode && !showSideBar && !pullOutSideBar\"\r\n class=\"sds-side-bar-pull-out h-100 position-absolute\" \r\n style=\"width: 0.75rem;\"\r\n (mouseenter)=\"pullOutSideBar = true\"\r\n >\r\n </div>\r\n\r\n <div class=\"d-flex flex-column flex-grow-0 h-100\" \r\n [style.width.rem]=\"widthRem\">\r\n\r\n <ng-content></ng-content> \r\n </div>\r\n\r\n </aside>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsSideBarComponent } from './side-bar.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n\r\n\r\nconst components = [\r\n SdsSideBarComponent\r\n]\r\n@NgModule({\r\n declarations: [\r\n ...components\r\n ],\r\n imports: [\r\n CommonModule, FontAwesomeModule\r\n ],\r\n exports: [\r\n ...components\r\n ]\r\n})\r\nexport class SdsSideBarModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;AAGA;AACA;MAOa,mBAAmB,CAAA;AA4E5B,IAAA,WAAA,GAAA;AA1EA;;;;;;;AAOG;QACa,IAAe,CAAA,eAAA,GAAsB,MAAM,CAAC;AAE5D;;;;;;AAMG;QACa,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AAEnD;;;;;AAKG;QACa,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AAEtC;;;;;;;AAOG;QACM,IAAO,CAAA,OAAA,GAA+D,WAAW,CAAC;AAE3F;;;;;;;AAOG;QACa,IAAmB,CAAA,mBAAA,GAAuB,GAAG,CAAC;QAmBvD,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAS,CAAA,SAAA,GAAmB,WAAW,CAAC;QACxC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAE/B,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAoB,CAAA,oBAAA,GAAY,KAAK,CAAC;AAEtC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ,CAAC;AAI1C,QAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,MAAK;AAChC,YAAA,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC9B,YAAA,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBACvD,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAErE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAElE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;gBAEhD,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5B,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IACD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;KACtC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,OAAO,CAAC,wBAAwB,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;AAC/B,SAAA;KACJ;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;KAC/B;AAEM,IAAA,aAAa,CAAC,KAAe,EAAA;QAChC,IAAI,KAAK,KAAK,SAAS,EAAE;AACrB,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC5B,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;AACxC,SAAA;KACJ;;gHApHQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,6TCXhC,q8EA6EM,EAAA,MAAA,EAAA,CAAA,82CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDlEO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACI,cAAc,EAAA,QAAA,EAAA,q8EAAA,EAAA,MAAA,EAAA,CAAA,82CAAA,CAAA,EAAA,CAAA;0EAcR,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBASU,iBAAiB,EAAA,CAAA;sBAAhC,KAAK;gBAQU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAUG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAUU,mBAAmB,EAAA,CAAA;sBAAlC,KAAK;gBAQU,eAAe,EAAA,CAAA;sBAA9B,KAAK;gBAQU,cAAc,EAAA,CAAA;sBAA7B,KAAK;;;AEnEV,MAAM,UAAU,GAAG;IACf,mBAAmB;CACtB,CAAA;MAYY,gBAAgB,CAAA;;6GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAbzB,mBAAmB,CAAA,EAAA,OAAA,EAAA,CAOnB,YAAY,EAAE,iBAAiB,aAP/B,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAaV,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAPlB,OAAA,EAAA,CAAA;AACP,YAAA,YAAY,EAAE,iBAAiB;AAChC,SAAA,CAAA,EAAA,CAAA,CAAA;2FAKU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;AACZ,wBAAA,GAAG,UAAU;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,YAAY,EAAE,iBAAiB;AAChC,qBAAA;AACD,oBAAA,OAAO,EAAE;AACP,wBAAA,GAAG,UAAU;AACd,qBAAA;AACF,iBAAA,CAAA;;;ACpBD;;AAEG;;;;"}