@spicainternational/ngx-sds-components 5.10.4 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/public-api.mjs +3 -1
- package/esm2020/src/lib/highlight-text/directives/highlight-text.directive.mjs +60 -0
- package/esm2020/src/lib/highlight-text/directives/index.mjs +2 -0
- package/esm2020/src/lib/highlight-text/highlight-text.module.mjs +31 -0
- package/esm2020/src/lib/highlight-text/pipes/highlight-text.pipe.mjs +29 -0
- package/esm2020/src/lib/highlight-text/pipes/index.mjs +2 -0
- package/esm2020/src/lib/highlight-text/public-api.mjs +4 -0
- package/esm2020/src/lib/highlight-text/spicainternational-ngx-sds-components-src-lib-highlight-text.mjs +5 -0
- package/esm2020/src/lib/highlight-text/utils/highlight-text.utils.mjs +97 -0
- package/esm2020/src/lib/highlight-text/utils/index.mjs +2 -0
- package/esm2020/src/lib/message/message.component.mjs +41 -0
- package/esm2020/src/lib/message/message.module.mjs +30 -0
- package/esm2020/src/lib/message/public-api.mjs +3 -0
- package/esm2020/src/lib/message/spicainternational-ngx-sds-components-src-lib-message.mjs +5 -0
- package/esm2020/src/lib/modal/dialog/dialog.component.mjs +8 -3
- package/esm2020/src/lib/modal/modal.component.mjs +6 -2
- package/esm2020/src/lib/navigation/navigation-user-profile/navigation-user-profile.component.mjs +50 -0
- package/esm2020/src/lib/navigation/navigation.module.mjs +22 -8
- package/esm2020/src/lib/navigation/public-api.mjs +2 -1
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-highlight-text.mjs +217 -0
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-highlight-text.mjs.map +1 -0
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-message.mjs +75 -0
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-message.mjs.map +1 -0
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs +12 -3
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-navigation.mjs +69 -9
- package/fesm2015/spicainternational-ngx-sds-components-src-lib-navigation.mjs.map +1 -1
- package/fesm2015/spicainternational-ngx-sds-components.mjs +2 -0
- package/fesm2015/spicainternational-ngx-sds-components.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-highlight-text.mjs +214 -0
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-highlight-text.mjs.map +1 -0
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-message.mjs +75 -0
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-message.mjs.map +1 -0
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs +12 -3
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-modal.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-navigation.mjs +69 -9
- package/fesm2020/spicainternational-ngx-sds-components-src-lib-navigation.mjs.map +1 -1
- package/fesm2020/spicainternational-ngx-sds-components.mjs +2 -0
- package/fesm2020/spicainternational-ngx-sds-components.mjs.map +1 -1
- package/package.json +17 -1
- package/public-api.d.ts +2 -0
- package/src/lib/highlight-text/directives/highlight-text.directive.d.ts +33 -0
- package/src/lib/highlight-text/directives/index.d.ts +1 -0
- package/src/lib/highlight-text/highlight-text.module.d.ts +9 -0
- package/src/lib/highlight-text/package.json +10 -0
- package/src/lib/highlight-text/pipes/highlight-text.pipe.d.ts +11 -0
- package/src/lib/highlight-text/pipes/index.d.ts +1 -0
- package/src/lib/highlight-text/public-api.d.ts +3 -0
- package/src/lib/highlight-text/spicainternational-ngx-sds-components-src-lib-highlight-text.d.ts +5 -0
- package/src/lib/highlight-text/utils/highlight-text.utils.d.ts +23 -0
- package/src/lib/highlight-text/utils/index.d.ts +1 -0
- package/src/lib/message/message.component.d.ts +18 -0
- package/src/lib/message/message.module.d.ts +9 -0
- package/src/lib/message/package.json +10 -0
- package/src/lib/message/public-api.d.ts +2 -0
- package/src/lib/message/spicainternational-ngx-sds-components-src-lib-message.d.ts +5 -0
- package/src/lib/modal/dialog/dialog.component.d.ts +1 -0
- package/src/lib/modal/modal.component.d.ts +2 -1
- package/src/lib/navigation/navigation-user-profile/navigation-user-profile.component.d.ts +19 -0
- package/src/lib/navigation/navigation.module.d.ts +8 -5
- package/src/lib/navigation/public-api.d.ts +1 -0
|
@@ -16,6 +16,7 @@ export class SdsModalComponent {
|
|
|
16
16
|
this.modalOpen = new EventEmitter();
|
|
17
17
|
this.modalClose = new EventEmitter();
|
|
18
18
|
this.closeClick = new EventEmitter();
|
|
19
|
+
this.closeEscapeKeypress = new EventEmitter();
|
|
19
20
|
this.closeIcon = faXmark;
|
|
20
21
|
this.isOpen = false;
|
|
21
22
|
this.translations = {
|
|
@@ -49,12 +50,13 @@ export class SdsModalComponent {
|
|
|
49
50
|
this._modal != undefined &&
|
|
50
51
|
this._modal.nativeElement.style.display === 'block') {
|
|
51
52
|
// console.log(`${this.constructor.name} got event: ${event.code}`);
|
|
53
|
+
this.closeEscapeKeypress.emit();
|
|
52
54
|
this.close();
|
|
53
55
|
}
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
SdsModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
-
SdsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsModalComponent, selector: "sds-modal", inputs: { modalTitle: "modalTitle", showHeader: "showHeader", showFooter: "showFooter", size: "size", modalDialogId: "modalDialogId", showCloseButton: "showCloseButton", autoFocusCloseButton: "autoFocusCloseButton", translations: "translations", isScrollable: "isScrollable", closeOnEscape: "closeOnEscape" }, outputs: { modalOpen: "modalOpen", modalClose: "modalClose", closeClick: "closeClick" }, queries: [{ propertyName: "headerContent", first: true, predicate: ["header"], descendants: true }], viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true }, { propertyName: "_closeButton", first: true, predicate: ["closeButton"], descendants: true }], ngImport: i0, template: "<div #modal class=\"modal\" (keydown)=\"onKeydown($event)\" [cdkTrapFocus]=\"isOpen\" [cdkTrapFocusAutoCapture]=\"true\" >\r\n <div\r\n class=\"modal-dialog modal-dialog-centered\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [attr.id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n\r\n <div *ngIf=\"showHeader && headerContent\" class=\"modal-header\">\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div *ngIf=\"showHeader && !headerContent\" class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n #closeButton\r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn-close\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:rgba(0,0,0,.5)}.modal .modal-header button.btn-close:hover{background-color:#e9ecef}.modal.in{opacity:1}.modal.in .modal-dialog{transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}\n"], directives: [{ type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
59
|
+
SdsModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsModalComponent, selector: "sds-modal", inputs: { modalTitle: "modalTitle", showHeader: "showHeader", showFooter: "showFooter", size: "size", modalDialogId: "modalDialogId", showCloseButton: "showCloseButton", autoFocusCloseButton: "autoFocusCloseButton", translations: "translations", isScrollable: "isScrollable", closeOnEscape: "closeOnEscape" }, outputs: { modalOpen: "modalOpen", modalClose: "modalClose", closeClick: "closeClick", closeEscapeKeypress: "closeEscapeKeypress" }, queries: [{ propertyName: "headerContent", first: true, predicate: ["header"], descendants: true }], viewQueries: [{ propertyName: "_modal", first: true, predicate: ["modal"], descendants: true }, { propertyName: "_closeButton", first: true, predicate: ["closeButton"], descendants: true }], ngImport: i0, template: "<div #modal class=\"modal\" (keydown)=\"onKeydown($event)\" [cdkTrapFocus]=\"isOpen\" [cdkTrapFocusAutoCapture]=\"true\" >\r\n <div\r\n class=\"modal-dialog modal-dialog-centered\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [attr.id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n\r\n <div *ngIf=\"showHeader && headerContent\" class=\"modal-header\">\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div *ngIf=\"showHeader && !headerContent\" class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n #closeButton\r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn-close\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:rgba(0,0,0,.5)}.modal .modal-header button.btn-close:hover{background-color:#e9ecef}.modal.in{opacity:1}.modal.in .modal-dialog{transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}\n"], directives: [{ type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
58
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsModalComponent, decorators: [{
|
|
59
61
|
type: Component,
|
|
60
62
|
args: [{ selector: 'sds-modal', template: "<div #modal class=\"modal\" (keydown)=\"onKeydown($event)\" [cdkTrapFocus]=\"isOpen\" [cdkTrapFocusAutoCapture]=\"true\" >\r\n <div\r\n class=\"modal-dialog modal-dialog-centered\"\r\n [class.modal-dialog-scrollable] = \"isScrollable\"\r\n [attr.id]=\"modalDialogId\"\r\n [ngClass]=\"'modal-' + size\"\r\n role=\"document\"\r\n >\r\n <div class=\"modal-content\">\r\n\r\n <div *ngIf=\"showHeader && headerContent\" class=\"modal-header\">\r\n <ng-content select='header'></ng-content>\r\n </div> \r\n\r\n <div *ngIf=\"showHeader && !headerContent\" class=\"modal-header\">\r\n <h5 class=\"modal-title\">{{modalTitle}}</h5>\r\n <button \r\n #closeButton\r\n *ngIf=\"showCloseButton\"\r\n type=\"button\" \r\n class=\"btn-close\" \r\n [title]=\"translations.close ?? ''\"\r\n (click)=\"onCloseButtonClick()\">\r\n </button>\r\n </div>\r\n\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n\r\n <div *ngIf=\"showFooter\" class=\"modal-footer\">\r\n <ng-content select=\"footer\"></ng-content>\r\n </div> \r\n </div>\r\n </div>\r\n</div>", styles: [".modal{background:rgba(0,0,0,.5)}.modal .modal-header button.btn-close:hover{background-color:#e9ecef}.modal.in{opacity:1}.modal.in .modal-dialog{transform:translate(0)}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}\n"] }]
|
|
@@ -87,6 +89,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
87
89
|
type: Output
|
|
88
90
|
}], closeClick: [{
|
|
89
91
|
type: Output
|
|
92
|
+
}], closeEscapeKeypress: [{
|
|
93
|
+
type: Output
|
|
90
94
|
}], _modal: [{
|
|
91
95
|
type: ViewChild,
|
|
92
96
|
args: ['modal', { static: false }]
|
|
@@ -94,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImpor
|
|
|
94
98
|
type: ViewChild,
|
|
95
99
|
args: ['closeButton', { static: false }]
|
|
96
100
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVE3RCxNQUFNLE9BQU8saUJBQWlCO0lBNkIxQjtRQTVCd0Isa0JBQWEsR0FBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUdqRSxlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFDM0IsU0FBSSxHQUE4QixJQUFJLENBQUM7UUFFdkMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFDaEMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBR3RDLGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGNBQVMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6RCxlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFMUQsZUFBVSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzFELHdCQUFtQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTdFLGNBQVMsR0FBRyxPQUFPLENBQUM7UUFFcEIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQU8zQixJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2hCLEtBQUssRUFBRSxTQUFTO1NBQ25CLENBQUE7SUFDTCxDQUFDO0lBRUQsUUFBUSxLQUFVLENBQUM7SUFFWixJQUFJO1FBQ1AsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVMsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFHLElBQUksQ0FBQyxvQkFBb0I7Z0JBQ3hCLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxTQUFTLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7WUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMxQjtJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixJQUNJLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUN2QixJQUFJLENBQUMsYUFBYTtZQUNsQixJQUFJLENBQUMsTUFBTSxJQUFJLFNBQVM7WUFDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sS0FBSyxPQUFPLEVBQUM7WUFDaEQsb0VBQW9FO1lBQ3BFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDcEI7SUFDTCxDQUFDOzs4R0F0RVEsaUJBQWlCO2tHQUFqQixpQkFBaUIsZ3hCQ2xCOUIsNjVDQW1DTTsyRkRqQk8saUJBQWlCO2tCQUw3QixTQUFTOytCQUNJLFdBQVc7MEVBS0csYUFBYTtzQkFBcEMsWUFBWTt1QkFBQyxRQUFRO2dCQUVOLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLG9CQUFvQjtzQkFBbkMsS0FBSztnQkFFVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFFVyxTQUFTO3NCQUF6QixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBRVUsVUFBVTtzQkFBMUIsTUFBTTtnQkFDVSxtQkFBbUI7c0JBQW5DLE1BQU07Z0JBTXdDLE1BQU07c0JBQXBELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDZ0IsWUFBWTtzQkFBaEUsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIENvbnRlbnRDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmYVhtYXJrIH0gZnJvbSAnQGZvcnRhd2Vzb21lL3Byby1yZWd1bGFyLXN2Zy1pY29ucyc7XHJcbmltcG9ydCB7IE1vZGFsVHJhbnNsYXRpb25zIH0gZnJvbSAnLi9tb2RhbC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2RzLW1vZGFsJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQENvbnRlbnRDaGlsZCgnaGVhZGVyJykgaGVhZGVyQ29udGVudDogRWxlbWVudFJlZiA9IHsgbmF0aXZlRWxlbWVudDogdW5kZWZpbmVkIH07XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIG1vZGFsVGl0bGU/OiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0hlYWRlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0Zvb3RlcjogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJyA9ICdtZCc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kYWxEaWFsb2dJZD86IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93Q2xvc2VCdXR0b246IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgQElucHV0KCkgcHVibGljIGF1dG9Gb2N1c0Nsb3NlQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIHRyYW5zbGF0aW9uczogTW9kYWxUcmFuc2xhdGlvbnM7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNTY3JvbGxhYmxlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjbG9zZU9uRXNjYXBlID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBtb2RhbE9wZW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgbW9kYWxDbG9zZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBwdWJsaWMgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZUVzY2FwZUtleXByZXNzOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHVibGljIGNsb3NlSWNvbiA9IGZhWG1hcms7XHJcblxyXG4gICAgcHVibGljIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ21vZGFsJywgeyBzdGF0aWM6IGZhbHNlIH0pIHByaXZhdGUgX21vZGFsOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gICAgQFZpZXdDaGlsZCgnY2xvc2VCdXR0b24nLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBfY2xvc2VCdXR0b246IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcbiAgICBcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0aW9ucyA9IHtcclxuICAgICAgICAgICAgY2xvc2U6IHVuZGVmaW5lZFxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gICAgcHVibGljIG9wZW4oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuX21vZGFsICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9tb2RhbC5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xyXG4gICAgICAgICAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmKHRoaXMuYXV0b0ZvY3VzQ2xvc2VCdXR0b24pXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jbG9zZUJ1dHRvbj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICB0aGlzLm1vZGFsT3Blbi5lbWl0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fbW9kYWwgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX21vZGFsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcclxuICAgICAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5tb2RhbENsb3NlLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uQ2xvc2VCdXR0b25DbGljaygpe1xyXG4gICAgICAgIHRoaXMuY2xvc2VDbGljay5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCl7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBldmVudC5jb2RlID09PSAnRXNjYXBlJyAmJlxyXG4gICAgICAgICAgICB0aGlzLmNsb3NlT25Fc2NhcGUgJiYgXHJcbiAgICAgICAgICAgIHRoaXMuX21vZGFsICE9IHVuZGVmaW5lZCAmJiBcclxuICAgICAgICAgICAgdGhpcy5fbW9kYWwubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID09PSAnYmxvY2snKXtcclxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX0gZ290IGV2ZW50OiAke2V2ZW50LmNvZGV9YCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlRXNjYXBlS2V5cHJlc3MuZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICNtb2RhbCBjbGFzcz1cIm1vZGFsXCIgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIiBbY2RrVHJhcEZvY3VzXT1cImlzT3BlblwiIFtjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCIgPlxyXG4gICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwibW9kYWwtZGlhbG9nIG1vZGFsLWRpYWxvZy1jZW50ZXJlZFwiXHJcbiAgICAgICAgW2NsYXNzLm1vZGFsLWRpYWxvZy1zY3JvbGxhYmxlXSA9IFwiaXNTY3JvbGxhYmxlXCJcclxuICAgICAgICBbYXR0ci5pZF09XCJtb2RhbERpYWxvZ0lkXCJcclxuICAgICAgICBbbmdDbGFzc109XCInbW9kYWwtJyArIHNpemVcIlxyXG4gICAgICAgIHJvbGU9XCJkb2N1bWVudFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0hlYWRlciAmJiBoZWFkZXJDb250ZW50XCIgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD0naGVhZGVyJz48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICBcclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93SGVhZGVyICYmICFoZWFkZXJDb250ZW50XCIgY2xhc3M9XCJtb2RhbC1oZWFkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlXCI+e3ttb2RhbFRpdGxlfX08L2g1PlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBcclxuICAgICAgICAgICAgICAgICAgICAjY2xvc2VCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dDbG9zZUJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuLWNsb3NlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cInRyYW5zbGF0aW9ucy5jbG9zZSA/PyAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VCdXR0b25DbGljaygpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzaG93Rm9vdGVyXCIgY2xhc3M9XCJtb2RhbC1mb290ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImZvb3RlclwiPjwvbmctY29udGVudD5cclxuICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
package/esm2020/src/lib/navigation/navigation-user-profile/navigation-user-profile.component.mjs
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@spicainternational/ngx-sds-components/src/lib/avatar";
|
|
4
|
+
import * as i2 from "devextreme-angular/ui/popover";
|
|
5
|
+
import * as i3 from "@angular/common";
|
|
6
|
+
export class SdsNavigationUserProfileComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.name = 'name';
|
|
9
|
+
this.id = 'id';
|
|
10
|
+
this.showSignOut = true;
|
|
11
|
+
this.showProfile = true;
|
|
12
|
+
this.signOutText = 'Sign out';
|
|
13
|
+
this.profileText = 'Profile';
|
|
14
|
+
this.profileClick = new EventEmitter();
|
|
15
|
+
this.signOutClick = new EventEmitter();
|
|
16
|
+
this.showOptions = false;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() { }
|
|
19
|
+
onProfileClick() {
|
|
20
|
+
this.showOptions = false;
|
|
21
|
+
this.profileClick.emit();
|
|
22
|
+
}
|
|
23
|
+
onSignOutClick() {
|
|
24
|
+
this.showOptions = false;
|
|
25
|
+
this.signOutClick.emit();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
SdsNavigationUserProfileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsNavigationUserProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
29
|
+
SdsNavigationUserProfileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsNavigationUserProfileComponent, selector: "sds-navigation-user-profile", inputs: { name: "name", id: "id", showSignOut: "showSignOut", showProfile: "showProfile", signOutText: "signOutText", profileText: "profileText" }, outputs: { profileClick: "profileClick", signOutClick: "signOutClick" }, ngImport: i0, template: "\r\n\r\n\r\n<div class=\"d-flex flex-row align-items-center gap-2 sds-navigation-user-profile-container\"\r\n (click)=\"showOptions = !showOptions\">\r\n\r\n <sds-avatar\r\n [text]=\"name\"\r\n [colorKey]=\"id\"> \r\n </sds-avatar>\r\n \r\n \r\n <span class=\"truncate-two-lines\">\r\n {{name}}\r\n </span> \r\n\r\n</div> \r\n\r\n<dx-popover\r\n target=\".sds-navigation-user-profile-container\"\r\n width=\"12.5rem\"\r\n [wrapperAttr]=\"{ class: 'sds-navigation-user-profile-popover' }\"\r\n [(visible)]=\"showOptions\"\r\n >\r\n\r\n <div class=\"d-flex flex-row gap-2 align-items-center p-2 mb-1\">\r\n <sds-avatar\r\n [text]=\"name\"\r\n [colorKey]=\"id\"\r\n [size]=\"2\"> \r\n </sds-avatar>\r\n \r\n <span class=\"truncate-two-lines font-weight-500\">\r\n {{name}}\r\n </span>\r\n </div>\r\n\r\n <ul class=\"list-unstyled sds-navigation-user-profile-actions mb-0\">\r\n <li *ngIf=\"showProfile\">\r\n <a \r\n class=\"d-block text-black\"\r\n (click)=\"onProfileClick()\" \r\n >\r\n {{profileText}}\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a \r\n *ngIf=\"showSignOut\"\r\n class=\"d-block text-black\"\r\n (click)=\"onSignOutClick()\" \r\n >\r\n {{signOutText}}\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n</dx-popover>", styles: [".sds-navigation-user-profile-container{padding:.8rem;cursor:pointer}.sds-navigation-user-profile-actions li{margin-bottom:.25rem}.sds-navigation-user-profile-actions li a{-webkit-user-select:none;user-select:none;text-decoration:none;padding:.5rem 1rem;width:100%;border-radius:4px}.sds-navigation-user-profile-actions li a:hover{background-color:#e9ecef;cursor:pointer}.truncate-two-lines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}::ng-deep .sds-navigation-user-profile-popover .dx-popup-content{padding:.25rem;font-size:1rem}\n"], components: [{ type: i1.SdsAvatarComponent, selector: "sds-avatar", inputs: ["text", "colorKey", "pictureUri", "showHint", "borderStyle", "borderColor", "initialsText", "cursor", "size"] }, { type: i2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "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", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsNavigationUserProfileComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ selector: 'sds-navigation-user-profile', template: "\r\n\r\n\r\n<div class=\"d-flex flex-row align-items-center gap-2 sds-navigation-user-profile-container\"\r\n (click)=\"showOptions = !showOptions\">\r\n\r\n <sds-avatar\r\n [text]=\"name\"\r\n [colorKey]=\"id\"> \r\n </sds-avatar>\r\n \r\n \r\n <span class=\"truncate-two-lines\">\r\n {{name}}\r\n </span> \r\n\r\n</div> \r\n\r\n<dx-popover\r\n target=\".sds-navigation-user-profile-container\"\r\n width=\"12.5rem\"\r\n [wrapperAttr]=\"{ class: 'sds-navigation-user-profile-popover' }\"\r\n [(visible)]=\"showOptions\"\r\n >\r\n\r\n <div class=\"d-flex flex-row gap-2 align-items-center p-2 mb-1\">\r\n <sds-avatar\r\n [text]=\"name\"\r\n [colorKey]=\"id\"\r\n [size]=\"2\"> \r\n </sds-avatar>\r\n \r\n <span class=\"truncate-two-lines font-weight-500\">\r\n {{name}}\r\n </span>\r\n </div>\r\n\r\n <ul class=\"list-unstyled sds-navigation-user-profile-actions mb-0\">\r\n <li *ngIf=\"showProfile\">\r\n <a \r\n class=\"d-block text-black\"\r\n (click)=\"onProfileClick()\" \r\n >\r\n {{profileText}}\r\n </a>\r\n </li>\r\n\r\n <li>\r\n <a \r\n *ngIf=\"showSignOut\"\r\n class=\"d-block text-black\"\r\n (click)=\"onSignOutClick()\" \r\n >\r\n {{signOutText}}\r\n </a>\r\n </li>\r\n </ul>\r\n\r\n</dx-popover>", styles: [".sds-navigation-user-profile-container{padding:.8rem;cursor:pointer}.sds-navigation-user-profile-actions li{margin-bottom:.25rem}.sds-navigation-user-profile-actions li a{-webkit-user-select:none;user-select:none;text-decoration:none;padding:.5rem 1rem;width:100%;border-radius:4px}.sds-navigation-user-profile-actions li a:hover{background-color:#e9ecef;cursor:pointer}.truncate-two-lines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}::ng-deep .sds-navigation-user-profile-popover .dx-popup-content{padding:.25rem;font-size:1rem}\n"] }]
|
|
33
|
+
}], ctorParameters: function () { return []; }, propDecorators: { name: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], id: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], showSignOut: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], showProfile: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], signOutText: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}], profileText: [{
|
|
44
|
+
type: Input
|
|
45
|
+
}], profileClick: [{
|
|
46
|
+
type: Output
|
|
47
|
+
}], signOutClick: [{
|
|
48
|
+
type: Output
|
|
49
|
+
}] } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi11c2VyLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNkcy1jb21wb25lbnRzL3NyYy9saWIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tdXNlci1wcm9maWxlL25hdmlnYXRpb24tdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTy9FLE1BQU0sT0FBTyxpQ0FBaUM7SUFlMUM7UUFkUyxTQUFJLEdBQVcsTUFBTSxDQUFDO1FBQ3RCLE9BQUUsR0FBVyxJQUFJLENBQUM7UUFFbEIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFDNUIsZ0JBQVcsR0FBWSxJQUFJLENBQUM7UUFFNUIsZ0JBQVcsR0FBVyxVQUFVLENBQUM7UUFDakMsZ0JBQVcsR0FBVyxTQUFTLENBQUM7UUFFL0IsaUJBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUM1RCxpQkFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRS9ELGdCQUFXLEdBQVksS0FBSyxDQUFDO0lBRXJCLENBQUM7SUFFaEIsUUFBUSxLQUFVLENBQUM7SUFFWixjQUFjO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLGNBQWM7UUFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDOzs4SEEzQlEsaUNBQWlDO2tIQUFqQyxpQ0FBaUMsZ1NDUDlDLHNpREEwRGE7MkZEbkRBLGlDQUFpQztrQkFMN0MsU0FBUzsrQkFDSSw2QkFBNkI7MEVBSzlCLElBQUk7c0JBQVosS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBRUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc2RzLW5hdmlnYXRpb24tdXNlci1wcm9maWxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzTmF2aWdhdGlvblVzZXJQcm9maWxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZyA9ICduYW1lJztcclxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSAnaWQnO1xyXG5cclxuICAgIEBJbnB1dCgpIHNob3dTaWduT3V0OiBib29sZWFuID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHNob3dQcm9maWxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKSBzaWduT3V0VGV4dDogc3RyaW5nID0gJ1NpZ24gb3V0JztcclxuICAgIEBJbnB1dCgpIHByb2ZpbGVUZXh0OiBzdHJpbmcgPSAnUHJvZmlsZSc7XHJcblxyXG4gICAgQE91dHB1dCgpIHByb2ZpbGVDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgQE91dHB1dCgpIHNpZ25PdXRDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHB1YmxpYyBzaG93T3B0aW9uczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gICAgcHVibGljIG9uUHJvZmlsZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd09wdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnByb2ZpbGVDbGljay5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uU2lnbk91dENsaWNrKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvd09wdGlvbnMgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLnNpZ25PdXRDbGljay5lbWl0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiXHJcblxyXG5cclxuPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXJvdyBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgc2RzLW5hdmlnYXRpb24tdXNlci1wcm9maWxlLWNvbnRhaW5lclwiXHJcbiAgICAoY2xpY2spPVwic2hvd09wdGlvbnMgPSAhc2hvd09wdGlvbnNcIj5cclxuXHJcbiAgICA8c2RzLWF2YXRhclxyXG4gICAgICAgIFt0ZXh0XT1cIm5hbWVcIlxyXG4gICAgICAgIFtjb2xvcktleV09XCJpZFwiPiAgICBcclxuICAgIDwvc2RzLWF2YXRhcj5cclxuICAgIFxyXG4gICAgXHJcbiAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlLXR3by1saW5lc1wiPlxyXG4gICAgICAgIHt7bmFtZX19XHJcbiAgICA8L3NwYW4+ICAgIFxyXG5cclxuPC9kaXY+IFxyXG5cclxuPGR4LXBvcG92ZXJcclxuICAgIHRhcmdldD1cIi5zZHMtbmF2aWdhdGlvbi11c2VyLXByb2ZpbGUtY29udGFpbmVyXCJcclxuICAgIHdpZHRoPVwiMTIuNXJlbVwiXHJcbiAgICBbd3JhcHBlckF0dHJdPVwieyBjbGFzczogJ3Nkcy1uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS1wb3BvdmVyJyB9XCJcclxuICAgIFsodmlzaWJsZSldPVwic2hvd09wdGlvbnNcIlxyXG4gICAgPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgZ2FwLTIgYWxpZ24taXRlbXMtY2VudGVyIHAtMiBtYi0xXCI+XHJcbiAgICAgICAgPHNkcy1hdmF0YXJcclxuICAgICAgICAgICAgW3RleHRdPVwibmFtZVwiXHJcbiAgICAgICAgICAgIFtjb2xvcktleV09XCJpZFwiXHJcbiAgICAgICAgICAgIFtzaXplXT1cIjJcIj4gICAgXHJcbiAgICAgICAgPC9zZHMtYXZhdGFyPlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUtdHdvLWxpbmVzIGZvbnQtd2VpZ2h0LTUwMFwiPlxyXG4gICAgICAgICAgICB7e25hbWV9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDx1bCBjbGFzcz1cImxpc3QtdW5zdHlsZWQgc2RzLW5hdmlnYXRpb24tdXNlci1wcm9maWxlLWFjdGlvbnMgbWItMFwiPlxyXG4gICAgICAgIDxsaSAqbmdJZj1cInNob3dQcm9maWxlXCI+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJkLWJsb2NrIHRleHQtYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUHJvZmlsZUNsaWNrKClcIiBcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3twcm9maWxlVGV4dH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgIDxhIFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93U2lnbk91dFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImQtYmxvY2sgdGV4dC1ibGFja1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TaWduT3V0Q2xpY2soKVwiICAgICAgXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt7c2lnbk91dFRleHR9fVxyXG4gICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcblxyXG48L2R4LXBvcG92ZXI+Il19
|
|
@@ -9,6 +9,9 @@ import { SdsNavigationRouteLinkComponent } from './navigation-route-link/navigat
|
|
|
9
9
|
import { SdsNavigationContainerComponent } from './navigation-container/navigation-container.component';
|
|
10
10
|
import { SdsNavigationExternalLinkComponent } from './navigation-external-link/navigation-external-link.component';
|
|
11
11
|
import { NavigationRouteActivePipe } from './pipes';
|
|
12
|
+
import { SdsNavigationUserProfileComponent } from './navigation-user-profile/navigation-user-profile.component';
|
|
13
|
+
import { SdsAvatarModule } from '@spicainternational/ngx-sds-components/src/lib/avatar';
|
|
14
|
+
import { DxPopoverModule } from 'devextreme-angular/ui/popover';
|
|
12
15
|
import * as i0 from "@angular/core";
|
|
13
16
|
// import { NavigationGroupComponent } from './navigation-group/navigation-group.component';
|
|
14
17
|
// import { NavigationRouteLinkComponent } from './navigation-route-link/navigation-route-link.component';
|
|
@@ -20,7 +23,8 @@ const components = [
|
|
|
20
23
|
SdsNavigationSeparatorComponent,
|
|
21
24
|
SdsNavigationHeaderComponent,
|
|
22
25
|
SdsNavigationContainerComponent,
|
|
23
|
-
SdsNavigationExternalLinkComponent
|
|
26
|
+
SdsNavigationExternalLinkComponent,
|
|
27
|
+
SdsNavigationUserProfileComponent
|
|
24
28
|
];
|
|
25
29
|
export class SdsNavigationModule {
|
|
26
30
|
}
|
|
@@ -30,34 +34,44 @@ SdsNavigationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", ver
|
|
|
30
34
|
SdsNavigationSeparatorComponent,
|
|
31
35
|
SdsNavigationHeaderComponent,
|
|
32
36
|
SdsNavigationContainerComponent,
|
|
33
|
-
SdsNavigationExternalLinkComponent,
|
|
37
|
+
SdsNavigationExternalLinkComponent,
|
|
38
|
+
SdsNavigationUserProfileComponent, NavigationRouteActivePipe,
|
|
39
|
+
SdsNavigationUserProfileComponent], imports: [CommonModule,
|
|
34
40
|
RouterModule,
|
|
35
|
-
|
|
41
|
+
SdsAvatarModule,
|
|
42
|
+
FontAwesomeModule,
|
|
43
|
+
DxPopoverModule], exports: [SdsNavigationGroupComponent,
|
|
36
44
|
SdsNavigationRouteLinkComponent,
|
|
37
45
|
SdsNavigationSeparatorComponent,
|
|
38
46
|
SdsNavigationHeaderComponent,
|
|
39
47
|
SdsNavigationContainerComponent,
|
|
40
|
-
SdsNavigationExternalLinkComponent
|
|
48
|
+
SdsNavigationExternalLinkComponent,
|
|
49
|
+
SdsNavigationUserProfileComponent] });
|
|
41
50
|
SdsNavigationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsNavigationModule, imports: [[
|
|
42
51
|
CommonModule,
|
|
43
52
|
RouterModule,
|
|
44
|
-
|
|
53
|
+
SdsAvatarModule,
|
|
54
|
+
FontAwesomeModule,
|
|
55
|
+
DxPopoverModule
|
|
45
56
|
]] });
|
|
46
57
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsNavigationModule, decorators: [{
|
|
47
58
|
type: NgModule,
|
|
48
59
|
args: [{
|
|
49
60
|
declarations: [
|
|
50
61
|
...components,
|
|
51
|
-
NavigationRouteActivePipe
|
|
62
|
+
NavigationRouteActivePipe,
|
|
63
|
+
SdsNavigationUserProfileComponent
|
|
52
64
|
],
|
|
53
65
|
imports: [
|
|
54
66
|
CommonModule,
|
|
55
67
|
RouterModule,
|
|
56
|
-
|
|
68
|
+
SdsAvatarModule,
|
|
69
|
+
FontAwesomeModule,
|
|
70
|
+
DxPopoverModule
|
|
57
71
|
],
|
|
58
72
|
exports: [
|
|
59
73
|
...components
|
|
60
74
|
]
|
|
61
75
|
}]
|
|
62
76
|
}] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2RzLWNvbXBvbmVudHMvc3JjL2xpYi9uYXZpZ2F0aW9uL25hdmlnYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVyRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNuSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDaEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFaEUsNEZBQTRGO0FBQzVGLDBHQUEwRztBQUMxRyx3R0FBd0c7QUFDeEcsK0ZBQStGO0FBRS9GLE1BQU0sVUFBVSxHQUFHO0lBQ2YsMkJBQTJCO0lBQzNCLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLCtCQUErQjtJQUMvQixrQ0FBa0M7SUFDbEMsaUNBQWlDO0NBQ3BDLENBQUE7QUFtQkQsTUFBTSxPQUFPLG1CQUFtQjs7Z0hBQW5CLG1CQUFtQjtpSEFBbkIsbUJBQW1CLGlCQTFCNUIsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0IsNEJBQTRCO1FBQzVCLCtCQUErQjtRQUMvQixrQ0FBa0M7UUFDbEMsaUNBQWlDLEVBTS9CLHlCQUF5QjtRQUN6QixpQ0FBaUMsYUFHbkMsWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGVBQWUsYUFwQmYsMkJBQTJCO1FBQzNCLCtCQUErQjtRQUMvQiwrQkFBK0I7UUFDL0IsNEJBQTRCO1FBQzVCLCtCQUErQjtRQUMvQixrQ0FBa0M7UUFDbEMsaUNBQWlDO2lIQW9CeEIsbUJBQW1CLFlBWHJCO1lBQ1AsWUFBWTtZQUNaLFlBQVk7WUFDWixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLGVBQWU7U0FDaEI7MkZBS1UsbUJBQW1CO2tCQWpCL0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1YsR0FBRyxVQUFVO3dCQUNiLHlCQUF5Qjt3QkFDekIsaUNBQWlDO3FCQUNwQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixlQUFlO3FCQUNoQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxVQUFVO3FCQUNkO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IEZvbnRBd2Vzb21lTW9kdWxlIH0gZnJvbSAnQGZvcnRhd2Vzb21lL2FuZ3VsYXItZm9udGF3ZXNvbWUnO1xyXG5cclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvblNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1zZXBhcmF0b3IvbmF2aWdhdGlvbi1zZXBhcmF0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1oZWFkZXIvbmF2aWdhdGlvbi1oZWFkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWdyb3VwL25hdmlnYXRpb24tZ3JvdXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvblJvdXRlTGlua0NvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1yb3V0ZS1saW5rL25hdmlnYXRpb24tcm91dGUtbGluay5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWNvbnRhaW5lci9uYXZpZ2F0aW9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNOYXZpZ2F0aW9uRXh0ZXJuYWxMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWV4dGVybmFsLWxpbmsvbmF2aWdhdGlvbi1leHRlcm5hbC1saW5rLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25Sb3V0ZUFjdGl2ZVBpcGUgfSBmcm9tICcuL3BpcGVzJztcclxuaW1wb3J0IHsgU2RzTmF2aWdhdGlvblVzZXJQcm9maWxlQ29tcG9uZW50IH0gZnJvbSAnLi9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZHNBdmF0YXJNb2R1bGUgfSBmcm9tICdAc3BpY2FpbnRlcm5hdGlvbmFsL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL2F2YXRhcic7XHJcbmltcG9ydCB7IER4UG9wb3Zlck1vZHVsZSB9IGZyb20gJ2RldmV4dHJlbWUtYW5ndWxhci91aS9wb3BvdmVyJztcclxuXHJcbi8vIGltcG9ydCB7IE5hdmlnYXRpb25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1ncm91cC9uYXZpZ2F0aW9uLWdyb3VwLmNvbXBvbmVudCc7XHJcbi8vIGltcG9ydCB7IE5hdmlnYXRpb25Sb3V0ZUxpbmtDb21wb25lbnQgfSBmcm9tICcuL25hdmlnYXRpb24tcm91dGUtbGluay9uYXZpZ2F0aW9uLXJvdXRlLWxpbmsuY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgTmF2aWdhdGlvblNlcGFyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1zZXBhcmF0b3IvbmF2aWdhdGlvbi1zZXBhcmF0b3IuY29tcG9uZW50JztcclxuLy8gaW1wb3J0IHsgTmF2aWdhdGlvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbmF2aWdhdGlvbi1oZWFkZXIvbmF2aWdhdGlvbi1oZWFkZXIuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICBTZHNOYXZpZ2F0aW9uR3JvdXBDb21wb25lbnQsXHJcbiAgICBTZHNOYXZpZ2F0aW9uUm91dGVMaW5rQ29tcG9uZW50LFxyXG4gICAgU2RzTmF2aWdhdGlvblNlcGFyYXRvckNvbXBvbmVudCxcclxuICAgIFNkc05hdmlnYXRpb25IZWFkZXJDb21wb25lbnQsXHJcbiAgICBTZHNOYXZpZ2F0aW9uQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgU2RzTmF2aWdhdGlvbkV4dGVybmFsTGlua0NvbXBvbmVudCxcclxuICAgIFNkc05hdmlnYXRpb25Vc2VyUHJvZmlsZUNvbXBvbmVudFxyXG5dXHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAuLi5jb21wb25lbnRzLFxyXG4gICAgICBOYXZpZ2F0aW9uUm91dGVBY3RpdmVQaXBlLFxyXG4gICAgICBTZHNOYXZpZ2F0aW9uVXNlclByb2ZpbGVDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFNkc0F2YXRhck1vZHVsZSxcclxuICAgIEZvbnRBd2Vzb21lTW9kdWxlLFxyXG4gICAgRHhQb3BvdmVyTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICAuLi5jb21wb25lbnRzXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RzTmF2aWdhdGlvbk1vZHVsZSB7IH1cclxuIl19
|
|
@@ -5,4 +5,5 @@ export * from './navigation-group/navigation-group.component';
|
|
|
5
5
|
export * from './navigation-header/navigation-header.component';
|
|
6
6
|
export * from './navigation-route-link/navigation-route-link.component';
|
|
7
7
|
export * from './navigation-separator/navigation-separator.component';
|
|
8
|
-
|
|
8
|
+
export * from './navigation-user-profile/navigation-user-profile.component';
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZHMtY29tcG9uZW50cy9zcmMvbGliL25hdmlnYXRpb24vcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBRXBDLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYywrREFBK0QsQ0FBQztBQUM5RSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsNkRBQTZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL25hdmlnYXRpb24ubW9kdWxlJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1jb250YWluZXIvbmF2aWdhdGlvbi1jb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uLWV4dGVybmFsLWxpbmsvbmF2aWdhdGlvbi1leHRlcm5hbC1saW5rLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1ncm91cC9uYXZpZ2F0aW9uLWdyb3VwLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1oZWFkZXIvbmF2aWdhdGlvbi1oZWFkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uLXJvdXRlLWxpbmsvbmF2aWdhdGlvbi1yb3V0ZS1saW5rLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbmF2aWdhdGlvbi1zZXBhcmF0b3IvbmF2aWdhdGlvbi1zZXBhcmF0b3IuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS9uYXZpZ2F0aW9uLXVzZXItcHJvZmlsZS5jb21wb25lbnQnO1xyXG5cclxuXHJcbiJdfQ==
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { SecurityContext, Directive, Input, HostBinding, Pipe, NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import * as i1 from '@angular/platform-browser';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @public @function escapeRegex
|
|
8
|
+
* @description
|
|
9
|
+
* Function responsible for substitution of chars that are a no-go for regex
|
|
10
|
+
* @param { string } phrase
|
|
11
|
+
* @returns { string }
|
|
12
|
+
*/
|
|
13
|
+
const escapeRegex = (phrase) => {
|
|
14
|
+
return phrase.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* @public @function highlightSearchedText
|
|
18
|
+
* @description
|
|
19
|
+
* Function responsible for returning html string
|
|
20
|
+
* with included marker that contains string that matches
|
|
21
|
+
* provided search phrase
|
|
22
|
+
* @param { string } highlightText
|
|
23
|
+
* @param { string } stringToBeChecked
|
|
24
|
+
* @param { string } existingHtmlContent
|
|
25
|
+
* @param { string } additionalClasses
|
|
26
|
+
* @param { string } sanitizer
|
|
27
|
+
* @returns { string }
|
|
28
|
+
*/
|
|
29
|
+
const highlightSearchedText = (highlightText, stringToBeChecked, existingHtmlContent, sanitizer, additionalClasses) => {
|
|
30
|
+
var _a;
|
|
31
|
+
// If search is empty just return current content
|
|
32
|
+
if (highlightText === '') {
|
|
33
|
+
return stringToBeChecked;
|
|
34
|
+
}
|
|
35
|
+
// Split search string into words
|
|
36
|
+
const splittedValue = highlightText.split(' ');
|
|
37
|
+
if (!splittedValue || splittedValue.length === 0) {
|
|
38
|
+
return stringToBeChecked;
|
|
39
|
+
}
|
|
40
|
+
const splittedStringToBeChecked = stringToBeChecked
|
|
41
|
+
? stringToBeChecked.split(' ')
|
|
42
|
+
: [];
|
|
43
|
+
const searchPhrases = splittedValue.filter(phrase => phrase.length > 0);
|
|
44
|
+
const markedWords = [];
|
|
45
|
+
// Go through search phrases and validate each string
|
|
46
|
+
const newContent = splittedStringToBeChecked
|
|
47
|
+
.map((wordToBeChecked) => {
|
|
48
|
+
const searchMarkRawResult = searchPhrases
|
|
49
|
+
.map(phrase => {
|
|
50
|
+
const safeString = escapeRegex(phrase);
|
|
51
|
+
const searchRegEx = new RegExp(safeString, 'i');
|
|
52
|
+
const testResult = searchRegEx.test(wordToBeChecked);
|
|
53
|
+
if (!testResult) {
|
|
54
|
+
return wordToBeChecked;
|
|
55
|
+
}
|
|
56
|
+
// Prevent text duplication when user enters same word multiple times
|
|
57
|
+
const wordIsAlreadyMarked = markedWords.some(alreadyMarkedWord => alreadyMarkedWord === wordToBeChecked);
|
|
58
|
+
if (wordIsAlreadyMarked) {
|
|
59
|
+
return wordToBeChecked;
|
|
60
|
+
}
|
|
61
|
+
markedWords.push(wordToBeChecked);
|
|
62
|
+
// Prepare content to be replaced with mark text
|
|
63
|
+
const markedContent = wordToBeChecked.replace(searchRegEx, (match) => {
|
|
64
|
+
return `<mark class='bg-primary text-white p-0 ${additionalClasses !== null && additionalClasses !== void 0 ? additionalClasses : ''}'>${match}</mark>`;
|
|
65
|
+
});
|
|
66
|
+
return markedContent;
|
|
67
|
+
})
|
|
68
|
+
.reduce((accumulator, currentItem) => {
|
|
69
|
+
const itemAlreadyExists = accumulator.some(item => item === currentItem);
|
|
70
|
+
if (!itemAlreadyExists) {
|
|
71
|
+
accumulator.push(currentItem);
|
|
72
|
+
}
|
|
73
|
+
return accumulator;
|
|
74
|
+
}, []);
|
|
75
|
+
/**
|
|
76
|
+
* At this point we have correctly marker content, however there can be
|
|
77
|
+
* duplicate words in the array. E.g. we have text First Client and user
|
|
78
|
+
* types Client First. This will give us two array. First one would be:
|
|
79
|
+
* ['First', '<mark class='highlighted-text '>First</mark>']
|
|
80
|
+
* Second one would be:
|
|
81
|
+
* ['<mark class='highlighted-text '>Client</mark>', 'Client']
|
|
82
|
+
* We have to filter out those plain values that are marked
|
|
83
|
+
*/
|
|
84
|
+
const sanitizedMarkedContent = searchMarkRawResult.filter(markedContentItem => {
|
|
85
|
+
const wordIsAlsoMarked = markedWords.some(word => word === markedContentItem);
|
|
86
|
+
if (wordIsAlsoMarked) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return true;
|
|
90
|
+
});
|
|
91
|
+
return sanitizedMarkedContent;
|
|
92
|
+
})
|
|
93
|
+
.join(' ');
|
|
94
|
+
/**
|
|
95
|
+
* We want to sanitize this before pushing to DOM.
|
|
96
|
+
* Just to be on the safe side. Fallback to existing value if
|
|
97
|
+
* sanitize returns null
|
|
98
|
+
*/
|
|
99
|
+
const sanitizedContent = (_a = sanitizer.sanitize(SecurityContext.HTML, newContent)) !== null && _a !== void 0 ? _a : existingHtmlContent;
|
|
100
|
+
return sanitizedContent;
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
class HighlightTextDirective {
|
|
104
|
+
constructor(_elementRef, _sanitizer) {
|
|
105
|
+
this._elementRef = _elementRef;
|
|
106
|
+
this._sanitizer = _sanitizer;
|
|
107
|
+
/**
|
|
108
|
+
* INPUTS
|
|
109
|
+
*/
|
|
110
|
+
/**
|
|
111
|
+
* CSS classes to be appended to the marked text
|
|
112
|
+
*/
|
|
113
|
+
this.additionalClasses = '';
|
|
114
|
+
/**
|
|
115
|
+
* Search term that should be found
|
|
116
|
+
*/
|
|
117
|
+
this._search = '';
|
|
118
|
+
/**
|
|
119
|
+
* For now make this case insensitive. We might change this to
|
|
120
|
+
* input latter if needed
|
|
121
|
+
*/
|
|
122
|
+
this.caseSensitive = false;
|
|
123
|
+
}
|
|
124
|
+
get highlightText() {
|
|
125
|
+
return this._search;
|
|
126
|
+
}
|
|
127
|
+
set highlightText(value) {
|
|
128
|
+
this._search = value;
|
|
129
|
+
// Now process the search value
|
|
130
|
+
this.markSearchedText(value);
|
|
131
|
+
}
|
|
132
|
+
markSearchedText(highlightText) {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
// Make sure that native element is present
|
|
135
|
+
if ((_a = this._elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement) {
|
|
136
|
+
const currentHtmlContent = this._elementRef.nativeElement
|
|
137
|
+
.innerHTML;
|
|
138
|
+
const text = (_b = this._elementRef.nativeElement.textContent) !== null && _b !== void 0 ? _b : '';
|
|
139
|
+
const highlightedText = highlightSearchedText(highlightText, text, currentHtmlContent, this._sanitizer, this.additionalClasses);
|
|
140
|
+
this.content = highlightedText;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
HighlightTextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: HighlightTextDirective, deps: [{ token: i0.ElementRef }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Directive });
|
|
145
|
+
HighlightTextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.1", type: HighlightTextDirective, selector: "[highlightText]", inputs: { additionalClasses: "additionalClasses", highlightText: "highlightText" }, host: { properties: { "innerHtml": "this.content" } }, ngImport: i0 });
|
|
146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: HighlightTextDirective, decorators: [{
|
|
147
|
+
type: Directive,
|
|
148
|
+
args: [{
|
|
149
|
+
selector: '[highlightText]'
|
|
150
|
+
}]
|
|
151
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DomSanitizer }]; }, propDecorators: { additionalClasses: [{
|
|
152
|
+
type: Input
|
|
153
|
+
}], highlightText: [{
|
|
154
|
+
type: Input
|
|
155
|
+
}], content: [{
|
|
156
|
+
type: HostBinding,
|
|
157
|
+
args: ['innerHtml']
|
|
158
|
+
}] } });
|
|
159
|
+
|
|
160
|
+
class HighlightTextPipe {
|
|
161
|
+
constructor(_elementRef, _sanitizer) {
|
|
162
|
+
this._elementRef = _elementRef;
|
|
163
|
+
this._sanitizer = _sanitizer;
|
|
164
|
+
}
|
|
165
|
+
transform(highlightText, stringToBeChecked, additionalClasses) {
|
|
166
|
+
var _a;
|
|
167
|
+
// Make sure that native element is present
|
|
168
|
+
if ((_a = this._elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement) {
|
|
169
|
+
const currentHtmlContent = this._elementRef.nativeElement
|
|
170
|
+
.innerHTML;
|
|
171
|
+
const highlightedText = highlightSearchedText(highlightText, stringToBeChecked, currentHtmlContent, this._sanitizer, additionalClasses);
|
|
172
|
+
return highlightedText;
|
|
173
|
+
}
|
|
174
|
+
return stringToBeChecked;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
HighlightTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: HighlightTextPipe, deps: [{ token: i0.ElementRef }, { token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
178
|
+
HighlightTextPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: HighlightTextPipe, name: "highlightText" });
|
|
179
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: HighlightTextPipe, decorators: [{
|
|
180
|
+
type: Pipe,
|
|
181
|
+
args: [{
|
|
182
|
+
name: 'highlightText'
|
|
183
|
+
}]
|
|
184
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DomSanitizer }]; } });
|
|
185
|
+
|
|
186
|
+
class SdsHighlightTextModule {
|
|
187
|
+
}
|
|
188
|
+
SdsHighlightTextModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsHighlightTextModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
189
|
+
SdsHighlightTextModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsHighlightTextModule, declarations: [HighlightTextDirective,
|
|
190
|
+
HighlightTextPipe], imports: [CommonModule], exports: [HighlightTextDirective,
|
|
191
|
+
HighlightTextPipe] });
|
|
192
|
+
SdsHighlightTextModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsHighlightTextModule, imports: [[
|
|
193
|
+
CommonModule
|
|
194
|
+
]] });
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsHighlightTextModule, decorators: [{
|
|
196
|
+
type: NgModule,
|
|
197
|
+
args: [{
|
|
198
|
+
declarations: [
|
|
199
|
+
HighlightTextDirective,
|
|
200
|
+
HighlightTextPipe
|
|
201
|
+
],
|
|
202
|
+
exports: [
|
|
203
|
+
HighlightTextDirective,
|
|
204
|
+
HighlightTextPipe
|
|
205
|
+
],
|
|
206
|
+
imports: [
|
|
207
|
+
CommonModule
|
|
208
|
+
]
|
|
209
|
+
}]
|
|
210
|
+
}] });
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Generated bundle index. Do not edit.
|
|
214
|
+
*/
|
|
215
|
+
|
|
216
|
+
export { HighlightTextDirective, HighlightTextPipe, SdsHighlightTextModule };
|
|
217
|
+
//# sourceMappingURL=spicainternational-ngx-sds-components-src-lib-highlight-text.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spicainternational-ngx-sds-components-src-lib-highlight-text.mjs","sources":["../../../projects/ngx-sds-components/src/lib/highlight-text/utils/highlight-text.utils.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/directives/highlight-text.directive.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/pipes/highlight-text.pipe.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/highlight-text.module.ts","../../../projects/ngx-sds-components/src/lib/highlight-text/spicainternational-ngx-sds-components-src-lib-highlight-text.ts"],"sourcesContent":["import { SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n/**\r\n * @public @function escapeRegex\r\n * @description\r\n * Function responsible for substitution of chars that are a no-go for regex\r\n * @param { string } phrase\r\n * @returns { string }\r\n */\r\nexport const escapeRegex = (phrase: string): string => {\r\n return phrase.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n};\r\n\r\n/**\r\n * @public @function highlightSearchedText\r\n * @description\r\n * Function responsible for returning html string\r\n * with included marker that contains string that matches\r\n * provided search phrase\r\n * @param { string } highlightText\r\n * @param { string } stringToBeChecked\r\n * @param { string } existingHtmlContent\r\n * @param { string } additionalClasses\r\n * @param { string } sanitizer\r\n * @returns { string }\r\n */\r\nexport const highlightSearchedText = (\r\n highlightText: string,\r\n stringToBeChecked: string,\r\n existingHtmlContent: string,\r\n sanitizer: DomSanitizer,\r\n additionalClasses?: string\r\n ): string => {\r\n // If search is empty just return current content\r\n if (highlightText === '') {\r\n return stringToBeChecked;\r\n }\r\n\r\n // Split search string into words\r\n const splittedValue = highlightText.split(' ');\r\n\r\n if (!splittedValue || splittedValue.length === 0) {\r\n return stringToBeChecked;\r\n }\r\n\r\n const splittedStringToBeChecked: string[] = stringToBeChecked\r\n ? stringToBeChecked.split(' ')\r\n : [];\r\n\r\n const searchPhrases: string[] = splittedValue.filter(\r\n phrase => phrase.length > 0\r\n );\r\n\r\n const markedWords: string[] = [];\r\n\r\n // Go through search phrases and validate each string\r\n const newContent = splittedStringToBeChecked\r\n .map((wordToBeChecked: string) => {\r\n const searchMarkRawResult = searchPhrases\r\n .map(phrase => {\r\n const safeString = escapeRegex(phrase);\r\n\r\n const searchRegEx = new RegExp(safeString, 'i');\r\n\r\n const testResult: boolean = searchRegEx.test(wordToBeChecked);\r\n\r\n if (!testResult) {\r\n return wordToBeChecked;\r\n }\r\n\r\n // Prevent text duplication when user enters same word multiple times\r\n const wordIsAlreadyMarked = markedWords.some(alreadyMarkedWord => alreadyMarkedWord === wordToBeChecked)\r\n\r\n if (wordIsAlreadyMarked) {\r\n return wordToBeChecked;\r\n }\r\n\r\n markedWords.push(wordToBeChecked);\r\n\r\n // Prepare content to be replaced with mark text\r\n const markedContent = wordToBeChecked.replace(\r\n searchRegEx,\r\n (match: string) => {\r\n return `<mark class='bg-primary text-white p-0 ${\r\n additionalClasses ?? ''\r\n }'>${match}</mark>`;\r\n }\r\n );\r\n return markedContent;\r\n })\r\n .reduce((accumulator: string[], currentItem: string) => {\r\n const itemAlreadyExists = accumulator.some(\r\n item => item === currentItem\r\n );\r\n\r\n if (!itemAlreadyExists) {\r\n accumulator.push(currentItem);\r\n }\r\n\r\n return accumulator;\r\n }, []);\r\n\r\n /**\r\n * At this point we have correctly marker content, however there can be\r\n * duplicate words in the array. E.g. we have text First Client and user\r\n * types Client First. This will give us two array. First one would be:\r\n * ['First', '<mark class='highlighted-text '>First</mark>']\r\n * Second one would be:\r\n * ['<mark class='highlighted-text '>Client</mark>', 'Client']\r\n * We have to filter out those plain values that are marked\r\n */\r\n const sanitizedMarkedContent = searchMarkRawResult.filter(\r\n markedContentItem => {\r\n const wordIsAlsoMarked = markedWords.some(\r\n word => word === markedContentItem\r\n );\r\n\r\n if (wordIsAlsoMarked) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n );\r\n\r\n return sanitizedMarkedContent;\r\n })\r\n .join(' ');\r\n\r\n /**\r\n * We want to sanitize this before pushing to DOM.\r\n * Just to be on the safe side. Fallback to existing value if\r\n * sanitize returns null\r\n */\r\n const sanitizedContent =\r\n sanitizer.sanitize(SecurityContext.HTML, newContent) ?? existingHtmlContent;\r\n\r\n return sanitizedContent;\r\n};\r\n","import { Directive, ElementRef, HostBinding, Input } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { highlightSearchedText } from '../utils';\r\n\r\n@Directive({\r\n selector: '[highlightText]'\r\n})\r\nexport class HighlightTextDirective {\r\n/**\r\n * INPUTS\r\n */\r\n /**\r\n * CSS classes to be appended to the marked text\r\n */\r\n @Input() additionalClasses: string = '';\r\n\r\n /**\r\n * Search term that should be found\r\n */\r\n private _search: string = '';\r\n @Input()\r\n get highlightText(): string {\r\n return this._search;\r\n }\r\n set highlightText(value: string) {\r\n this._search = value;\r\n\r\n // Now process the search value\r\n this.markSearchedText(value);\r\n }\r\n\r\n /**\r\n * OTHER PROPS\r\n */\r\n @HostBinding('innerHtml')\r\n content!: string;\r\n\r\n /**\r\n * For now make this case insensitive. We might change this to\r\n * input latter if needed\r\n */\r\n protected caseSensitive: boolean = false;\r\n\r\n constructor(\r\n private readonly _elementRef: ElementRef,\r\n private readonly _sanitizer: DomSanitizer\r\n ) {}\r\n\r\n protected markSearchedText(highlightText: string): void {\r\n // Make sure that native element is present\r\n if (this._elementRef?.nativeElement) {\r\n const currentHtmlContent = (this._elementRef.nativeElement as HTMLElement)\r\n .innerHTML;\r\n\r\n const text =\r\n (this._elementRef.nativeElement as HTMLElement).textContent ?? '';\r\n\r\n const highlightedText = highlightSearchedText(\r\n highlightText,\r\n text,\r\n currentHtmlContent,\r\n this._sanitizer,\r\n this.additionalClasses\r\n );\r\n\r\n this.content = highlightedText;\r\n }\r\n }\r\n}\r\n","import { ElementRef, Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { highlightSearchedText } from '../utils';\r\n\r\n@Pipe({\r\n name: 'highlightText'\r\n})\r\nexport class HighlightTextPipe implements PipeTransform {\r\n constructor(\r\n private readonly _elementRef: ElementRef,\r\n private readonly _sanitizer: DomSanitizer\r\n ) {}\r\n\r\n transform(\r\n highlightText: string,\r\n stringToBeChecked: string,\r\n additionalClasses?: string\r\n ): string {\r\n // Make sure that native element is present\r\n if (this._elementRef?.nativeElement) {\r\n const currentHtmlContent = (this._elementRef.nativeElement as HTMLElement)\r\n .innerHTML;\r\n\r\n const highlightedText = highlightSearchedText(\r\n highlightText,\r\n stringToBeChecked,\r\n currentHtmlContent,\r\n this._sanitizer,\r\n additionalClasses\r\n );\r\n\r\n return highlightedText;\r\n }\r\n\r\n return stringToBeChecked;\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HighlightTextDirective } from './directives';\r\nimport { HighlightTextPipe } from './pipes';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n HighlightTextDirective,\r\n HighlightTextPipe\r\n ],\r\n exports: [\r\n HighlightTextDirective,\r\n HighlightTextPipe\r\n ],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class SdsHighlightTextModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAGA;;;;;;AAMG;AACI,MAAM,WAAW,GAAG,CAAC,MAAc,KAAY;IAClD,OAAO,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF;;;;;;;;;;;;AAYG;AACI,MAAM,qBAAqB,GAAG,CACjC,aAAqB,EACrB,iBAAyB,EACzB,mBAA2B,EAC3B,SAAuB,EACvB,iBAA0B,KAChB;;;IAEV,IAAI,aAAa,KAAK,EAAE,EAAE;AACxB,QAAA,OAAO,iBAAiB,CAAC;AAC1B,KAAA;;IAGD,MAAM,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AAChD,QAAA,OAAO,iBAAiB,CAAC;AAC1B,KAAA;IAED,MAAM,yBAAyB,GAAa,iBAAiB;AAC3D,UAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC;UAC5B,EAAE,CAAC;AAEP,IAAA,MAAM,aAAa,GAAa,aAAa,CAAC,MAAM,CAClD,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAC5B,CAAC;IAEF,MAAM,WAAW,GAAa,EAAE,CAAC;;IAGjC,MAAM,UAAU,GAAG,yBAAyB;AACzC,SAAA,GAAG,CAAC,CAAC,eAAuB,KAAI;QAC/B,MAAM,mBAAmB,GAAG,aAAa;aACtC,GAAG,CAAC,MAAM,IAAG;AACZ,YAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAEvC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAEhD,MAAM,UAAU,GAAY,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAE9D,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,OAAO,eAAe,CAAC;AACxB,aAAA;;AAGD,YAAA,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,KAAK,eAAe,CAAC,CAAA;AAExG,YAAA,IAAI,mBAAmB,EAAE;AACrB,gBAAA,OAAO,eAAe,CAAC;AAC1B,aAAA;AAED,YAAA,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;;YAGlC,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAC3C,WAAW,EACX,CAAC,KAAa,KAAI;gBAChB,OAAO,CAAA,uCAAA,EACL,iBAAiB,KAAA,IAAA,IAAjB,iBAAiB,KAAA,KAAA,CAAA,GAAjB,iBAAiB,GAAI,EACvB,CAAA,EAAA,EAAK,KAAK,CAAA,OAAA,CAAS,CAAC;AACtB,aAAC,CACF,CAAC;AACF,YAAA,OAAO,aAAa,CAAC;AACvB,SAAC,CAAC;AACD,aAAA,MAAM,CAAC,CAAC,WAAqB,EAAE,WAAmB,KAAI;AACrD,YAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,IAAI,CACxC,IAAI,IAAI,IAAI,KAAK,WAAW,CAC7B,CAAC;YAEF,IAAI,CAAC,iBAAiB,EAAE;AACtB,gBAAA,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC/B,aAAA;AAED,YAAA,OAAO,WAAW,CAAC;SACpB,EAAE,EAAE,CAAC,CAAC;AAET;;;;;;;;AAQG;QACH,MAAM,sBAAsB,GAAG,mBAAmB,CAAC,MAAM,CACvD,iBAAiB,IAAG;AAClB,YAAA,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CACvC,IAAI,IAAI,IAAI,KAAK,iBAAiB,CACnC,CAAC;AAEF,YAAA,IAAI,gBAAgB,EAAE;AACpB,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACD,YAAA,OAAO,IAAI,CAAC;AACd,SAAC,CACF,CAAC;AAEF,QAAA,OAAO,sBAAsB,CAAC;AAChC,KAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AAEb;;;;AAIG;AACH,IAAA,MAAM,gBAAgB,GACpB,CAAA,EAAA,GAAA,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAI,mBAAmB,CAAC;AAE9E,IAAA,OAAO,gBAAgB,CAAC;AAC5B,CAAC;;MCnIY,sBAAsB,CAAA;IAoCjC,WACmB,CAAA,WAAuB,EACvB,UAAwB,EAAA;AADxB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AACvB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAc;AArC7C;;AAEK;AACH;;AAEG;AACM,QAAA,IAAiB,CAAA,iBAAA,GAAW,EAAE,CAAC;AAExC;;AAEG;AACK,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;AAkB7B;;;AAGG;AACO,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;KAKrC;AA1BJ,IAAA,IACI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;IACD,IAAI,aAAa,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;;AAGrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAC9B;AAmBS,IAAA,gBAAgB,CAAC,aAAqB,EAAA;;;AAE9C,QAAA,IAAI,MAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,EAAE;AACnC,YAAA,MAAM,kBAAkB,GAAI,IAAI,CAAC,WAAW,CAAC,aAA6B;AACvE,iBAAA,SAAS,CAAC;AAEb,YAAA,MAAM,IAAI,GACP,CAAA,EAAA,GAAA,IAAI,CAAC,WAAW,CAAC,aAA6B,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,CAAC;AAEpE,YAAA,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,EACb,IAAI,EACJ,kBAAkB,EAClB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,YAAA,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;AAChC,SAAA;KACF;;mHA5DU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,cAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;iBAC5B,CAAA;4HAQU,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAOF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBAeN,OAAO,EAAA,CAAA;sBADN,WAAW;uBAAC,WAAW,CAAA;;;MC3Bb,iBAAiB,CAAA;IAC1B,WACqB,CAAA,WAAuB,EACvB,UAAwB,EAAA;AADxB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;AACvB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAc;KACzC;AAEJ,IAAA,SAAS,CACL,aAAqB,EACrB,iBAAyB,EACzB,iBAA0B,EAAA;;;AAG1B,QAAA,IAAI,MAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,aAAa,EAAE;AACnC,YAAA,MAAM,kBAAkB,GAAI,IAAI,CAAC,WAAW,CAAC,aAA6B;AACvE,iBAAA,SAAS,CAAC;AAEb,YAAA,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,IAAI,CAAC,UAAU,EACf,iBAAiB,CAClB,CAAC;AAEF,YAAA,OAAO,eAAe,CAAC;AACxB,SAAA;AAED,QAAA,OAAO,iBAAiB,CAAC;KAC1B;;8GA5BM,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;iBACtB,CAAA;;;MCcY,sBAAsB,CAAA;;mHAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,iBAX/B,sBAAsB;QACtB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAOjB,YAAY,CAAA,EAAA,OAAA,EAAA,CAJZ,sBAAsB;QACtB,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAMR,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAJxB,OAAA,EAAA,CAAA;YACP,YAAY;SACb,CAAA,EAAA,CAAA,CAAA;2FAEU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,sBAAsB;wBACtB,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,sBAAsB;wBACtB,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;AACb,qBAAA;iBACF,CAAA;;;ACnBD;;AAEG;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Input, Output, NgModule } from '@angular/core';
|
|
3
|
+
import * as i2 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i1 from '@fortawesome/angular-fontawesome';
|
|
6
|
+
import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
7
|
+
|
|
8
|
+
class SdsMessageComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.text = '';
|
|
11
|
+
this.showCloseButton = false;
|
|
12
|
+
this.close = new EventEmitter();
|
|
13
|
+
this.showLearnMoreLink = false;
|
|
14
|
+
this.learnMoreLinkText = 'Learn more';
|
|
15
|
+
this.learnMoreLinkUrl = '';
|
|
16
|
+
this.showMessage = true;
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() { }
|
|
19
|
+
onCloseButtonClick() {
|
|
20
|
+
this.showMessage = false;
|
|
21
|
+
this.close.emit();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
SdsMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
SdsMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: SdsMessageComponent, selector: "sds-message", inputs: { icon: "icon", text: "text", showCloseButton: "showCloseButton", showLearnMoreLink: "showLearnMoreLink", learnMoreLinkText: "learnMoreLinkText", learnMoreLinkUrl: "learnMoreLinkUrl" }, outputs: { close: "close" }, ngImport: i0, template: "<div \r\n *ngIf=\"showMessage\"\r\n class=\"px-3 py-2 bg-gray-300 d-flex rounded\"\r\n >\r\n\r\n <fa-icon \r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n class=\"mr-2\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"flex-grow-1\">\r\n <div class=\"\">\r\n <span>\r\n {{text}}\r\n </span>\r\n <span \r\n *ngIf=\"showLearnMoreLink\"\r\n >\r\n <a \r\n class=\"\"\r\n [href]=\"learnMoreLinkUrl\"\r\n target=\"_learnmore\"\r\n >\r\n {{learnMoreLinkText}}\r\n </a>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showCloseButton\">\r\n <button \r\n class=\"close rounded ml-2\" \r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n <fa-icon \r\n [icon]=\"['far', 'times']\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n </button>\r\n </div>\r\n\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.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsMessageComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{ selector: 'sds-message', template: "<div \r\n *ngIf=\"showMessage\"\r\n class=\"px-3 py-2 bg-gray-300 d-flex rounded\"\r\n >\r\n\r\n <fa-icon \r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n class=\"mr-2\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"flex-grow-1\">\r\n <div class=\"\">\r\n <span>\r\n {{text}}\r\n </span>\r\n <span \r\n *ngIf=\"showLearnMoreLink\"\r\n >\r\n <a \r\n class=\"\"\r\n [href]=\"learnMoreLinkUrl\"\r\n target=\"_learnmore\"\r\n >\r\n {{learnMoreLinkText}}\r\n </a>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showCloseButton\">\r\n <button \r\n class=\"close rounded ml-2\" \r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n <fa-icon \r\n [icon]=\"['far', 'times']\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n </button>\r\n </div>\r\n\r\n</div>\r\n", styles: [""] }]
|
|
29
|
+
}], ctorParameters: function () { return []; }, propDecorators: { icon: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], text: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], showCloseButton: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], close: [{
|
|
36
|
+
type: Output
|
|
37
|
+
}], showLearnMoreLink: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], learnMoreLinkText: [{
|
|
40
|
+
type: Input
|
|
41
|
+
}], learnMoreLinkUrl: [{
|
|
42
|
+
type: Input
|
|
43
|
+
}] } });
|
|
44
|
+
|
|
45
|
+
class SdsMessageModule {
|
|
46
|
+
}
|
|
47
|
+
SdsMessageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsMessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
48
|
+
SdsMessageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsMessageModule, declarations: [SdsMessageComponent], imports: [CommonModule,
|
|
49
|
+
FontAwesomeModule], exports: [SdsMessageComponent] });
|
|
50
|
+
SdsMessageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsMessageModule, imports: [[
|
|
51
|
+
CommonModule,
|
|
52
|
+
FontAwesomeModule
|
|
53
|
+
]] });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: SdsMessageModule, decorators: [{
|
|
55
|
+
type: NgModule,
|
|
56
|
+
args: [{
|
|
57
|
+
declarations: [
|
|
58
|
+
SdsMessageComponent
|
|
59
|
+
],
|
|
60
|
+
imports: [
|
|
61
|
+
CommonModule,
|
|
62
|
+
FontAwesomeModule
|
|
63
|
+
],
|
|
64
|
+
exports: [
|
|
65
|
+
SdsMessageComponent
|
|
66
|
+
]
|
|
67
|
+
}]
|
|
68
|
+
}] });
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Generated bundle index. Do not edit.
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
export { SdsMessageComponent, SdsMessageModule };
|
|
75
|
+
//# sourceMappingURL=spicainternational-ngx-sds-components-src-lib-message.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spicainternational-ngx-sds-components-src-lib-message.mjs","sources":["../../../projects/ngx-sds-components/src/lib/message/message.component.ts","../../../projects/ngx-sds-components/src/lib/message/message.component.html","../../../projects/ngx-sds-components/src/lib/message/message.module.ts","../../../projects/ngx-sds-components/src/lib/message/spicainternational-ngx-sds-components-src-lib-message.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\r\n\r\n@Component({\r\n selector: 'sds-message',\r\n templateUrl: './message.component.html',\r\n styleUrls: ['./message.component.scss'],\r\n})\r\nexport class SdsMessageComponent implements OnInit {\r\n\r\n @Input() public icon?: IconProp;\r\n @Input() public text: string = '';\r\n @Input() public showCloseButton: boolean = false;\r\n\r\n @Output() public close: EventEmitter<void> = new EventEmitter();\r\n\r\n @Input() public showLearnMoreLink: boolean = false;\r\n @Input() public learnMoreLinkText: string = 'Learn more';\r\n @Input() public learnMoreLinkUrl: string = '';\r\n\r\n public showMessage: boolean = true;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public onCloseButtonClick(): void {\r\n this.showMessage = false;\r\n this.close.emit();\r\n }\r\n\r\n}\r\n","<div \r\n *ngIf=\"showMessage\"\r\n class=\"px-3 py-2 bg-gray-300 d-flex rounded\"\r\n >\r\n\r\n <fa-icon \r\n *ngIf=\"icon\"\r\n [icon]=\"icon\"\r\n class=\"mr-2\"\r\n >\r\n </fa-icon>\r\n\r\n <div class=\"flex-grow-1\">\r\n <div class=\"\">\r\n <span>\r\n {{text}}\r\n </span>\r\n <span \r\n *ngIf=\"showLearnMoreLink\"\r\n >\r\n <a \r\n class=\"\"\r\n [href]=\"learnMoreLinkUrl\"\r\n target=\"_learnmore\"\r\n >\r\n {{learnMoreLinkText}}\r\n </a>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showCloseButton\">\r\n <button \r\n class=\"close rounded ml-2\" \r\n (click)=\"onCloseButtonClick()\"\r\n >\r\n <fa-icon \r\n [icon]=\"['far', 'times']\"\r\n size=\"xs\"\r\n >\r\n </fa-icon>\r\n </button>\r\n </div>\r\n\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SdsMessageComponent } from './message.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\n@NgModule({\r\n declarations: [\r\n SdsMessageComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FontAwesomeModule\r\n ],\r\n exports: [\r\n SdsMessageComponent\r\n ]\r\n})\r\nexport class SdsMessageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|