@byuhbll/components 4.3.2 → 4.4.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.
@@ -0,0 +1,142 @@
1
+ import { Component, EventEmitter, Input, Output, booleanAttribute, } from '@angular/core';
2
+ import { NgClass } from '@angular/common';
3
+ import { StatusButtonComponent } from '../status-button/status-button.component';
4
+ import * as i0 from "@angular/core";
5
+ const purposeToStatusMap = {
6
+ default: 'info',
7
+ info: 'info',
8
+ success: 'success',
9
+ error: 'error',
10
+ warning: 'warning',
11
+ };
12
+ export class SnackbarComponent {
13
+ constructor() {
14
+ this.purpose = 'default';
15
+ this.title = 'Snackbar Title';
16
+ this.description = 'Lorem ipsum';
17
+ this.fieldPlaceholder = 'Placeholder';
18
+ this.titleIcon = 'info';
19
+ this.buttonLabel = 'Done';
20
+ this.showTitle = true;
21
+ this.showTitleIcon = true;
22
+ this.showClose = true;
23
+ this.showProgressBar = true;
24
+ this.showField = true;
25
+ this.showButton = true;
26
+ this.autoDismiss = true;
27
+ this.visible = true;
28
+ this.progressMs = 4000;
29
+ this.y = 24;
30
+ this.closed = new EventEmitter();
31
+ this.visibleChange = new EventEmitter();
32
+ this.isOpen = false;
33
+ this.EXIT_MS = 300;
34
+ }
35
+ ngOnInit() {
36
+ if (this.visible) {
37
+ // enter on next tick
38
+ setTimeout(() => (this.isOpen = true), 0);
39
+ this.startDismissTimer();
40
+ }
41
+ }
42
+ ngOnChanges(changes) {
43
+ if ('visible' in changes) {
44
+ // when parent toggles visible
45
+ if (this.visible) {
46
+ // becoming visible -> open + (re)start timer
47
+ this.isOpen = false;
48
+ setTimeout(() => (this.isOpen = true), 0);
49
+ this.startDismissTimer();
50
+ }
51
+ else {
52
+ // becoming hidden -> stop timers and ensure closed state
53
+ this.clearDismissTimer();
54
+ this.isOpen = false;
55
+ }
56
+ }
57
+ }
58
+ ngOnDestroy() {
59
+ this.clearDismissTimer();
60
+ }
61
+ // used by the × button, done button, and auto-dismiss
62
+ close() {
63
+ if (!this.isOpen && !this.visible)
64
+ return;
65
+ this.clearDismissTimer();
66
+ this.isOpen = false; // triggers exit transition
67
+ // after exit animation, hide + notify
68
+ window.setTimeout(() => {
69
+ if (this.visible) {
70
+ this.visible = false;
71
+ this.visibleChange.emit(false);
72
+ }
73
+ this.closed.emit();
74
+ }, this.EXIT_MS);
75
+ }
76
+ get status() {
77
+ return purposeToStatusMap[this.purpose];
78
+ }
79
+ startDismissTimer() {
80
+ if (!this.autoDismiss)
81
+ return;
82
+ this.clearDismissTimer();
83
+ this.dismissTimer = window.setTimeout(() => this.close(), this.progressMs);
84
+ }
85
+ clearDismissTimer() {
86
+ if (this.dismissTimer) {
87
+ clearTimeout(this.dismissTimer);
88
+ this.dismissTimer = undefined;
89
+ }
90
+ }
91
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SnackbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
92
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SnackbarComponent, isStandalone: true, selector: "lib-snackbar", inputs: { purpose: "purpose", title: "title", description: "description", fieldPlaceholder: "fieldPlaceholder", titleIcon: "titleIcon", buttonLabel: "buttonLabel", showTitle: ["showTitle", "showTitle", booleanAttribute], showTitleIcon: ["showTitleIcon", "showTitleIcon", booleanAttribute], showClose: ["showClose", "showClose", booleanAttribute], showProgressBar: ["showProgressBar", "showProgressBar", booleanAttribute], showField: ["showField", "showField", booleanAttribute], showButton: ["showButton", "showButton", booleanAttribute], autoDismiss: ["autoDismiss", "autoDismiss", booleanAttribute], visible: ["visible", "visible", booleanAttribute], progressMs: "progressMs", y: "y" }, outputs: { closed: "closed", visibleChange: "visibleChange" }, usesOnChanges: true, ngImport: i0, template: "@if (visible) {\n <section\n class=\"snackbar\"\n [ngClass]=\"{\n 'is-default': purpose === 'default',\n 'is-info': purpose === 'info',\n 'is-success': purpose === 'success',\n 'is-error': purpose === 'error',\n 'is-warning': purpose === 'warning',\n 'is-open': isOpen,\n }\"\n role=\"status\"\n aria-live=\"polite\"\n [style.--snackbar-progress-duration]=\"progressMs + 'ms'\"\n [style.top.px]=\"y\"\n >\n <div class=\"snackbar__left\">\n @if(showTitle) {\n <div class=\"snackbar__title-row\">\n <span \n [ngClass]=\"{\n 'snackbar__title-icon': true,\n 'has-icon': showTitle && showTitleIcon\n }\"\n aria-hidden=\"true\"\n >\n @if (showTitle && showTitleIcon) {\n <i class=\"material-icons\" id=\"snackbar-title-icon\" aria-hidden=\"true\">{{ titleIcon }}</i>\n }\n </span>\n @if (showTitle) {\n <h3 class=\"snackbar__title\">{{ title }}</h3>\n }\n </div>\n }\n <p class=\"snackbar__desc\">\n {{ description }}\n </p>\n @if (showField) {\n <input class=\"snackbar__input\" type=\"text\" [placeholder]=\"fieldPlaceholder\" />\n }\n @if (showButton) {\n <lib-status-button\n label={{buttonLabel}}\n [status]=\"status\"\n [clearVariant]=\"true\"\n (click)=\"close()\"\n ></lib-status-button>\n\n }\n </div>\n <button \n type=\"button\"\n (click)=\"close()\"\n class=\"snackbar__close\"\n aria-label=\"Dismiss\"\n [style.visibility]=\"showClose ? 'visible' : 'hidden'\"\n >\n \u00D7\n </button>\n @if (showProgressBar) {\n <div class=\"snackbar__progress\">\n <div class=\"snackbar__progress-fill\"></div>\n </div>\n }\n </section>\n}\n", styles: [":root{--border-radius-md: 4px;--colors-border-primary: #d0d0d0;--colors-surface-primary: white;--colors-border-information: #457fa6;--colors-surface-information: #ecf2f6;--colors-border-success: #3ba35a;--colors-surface-success: #ebf6ee;--colors-border-warning: #d1c844;--colors-surface-warning: #faf9ec;--colors-border-error: #c73e3d;--colors-surface-error: #f9ecec}.snackbar{--snackbar-border-color: var(--colors-border-primary);--snackbar-bg: var(--colors-surface-primary);--snackbar-text: #141414;--snackbar-title-color: var(--snackbar-text);--snackbar-icon-bg: #e5edf8;--snackbar-accent: #0047ba;--snackbar-input-border: var(--snackbar-border-color);--snackbar-progress: var(--snackbar-accent);display:flex;width:26.25rem;padding:1.25rem 1rem;justify-content:space-between;align-items:flex-start;gap:.25rem;position:relative;border-radius:var(--border-radius-md, 4px);border:1px solid var(--snackbar-border-color);background:var(--snackbar-bg);box-shadow:1px 1px 4px #00000040;color:var(--snackbar-text)}.snackbar__left{display:grid;gap:.5rem;flex:1 1 auto}.snackbar__left>.snackbar__title-row~*{margin-left:var(--snackbar-right-gutter, 1.85rem)}.snackbar__title-row{display:flex;align-items:center;gap:.25rem}.snackbar__title{margin:0;font-weight:400;font-size:1.2rem;line-height:1.2;color:var(--snackbar-title-color)}.snackbar__title-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em}.snackbar__title-icon.has-icon{border-radius:50%;background:var(--snackbar-icon-bg);color:var(--snackbar-accent)}.snackbar__icon{font-weight:700;font-size:1rem;line-height:1}.snackbar__desc{margin:0;opacity:.9}.snackbar__input{width:100%;max-width:100%;box-sizing:border-box;padding:.5em;border-radius:4px;border:1px solid var(--snackbar-input-border);background:#fff;color:inherit}.snackbar__close{margin-left:.5em;border:0;background:transparent;color:inherit;opacity:.7;font-size:1.5rem;padding:.25rem;line-height:1;cursor:pointer}.snackbar__progress{position:absolute;left:0;right:0;bottom:-1px;height:4px;overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.snackbar__progress-fill{height:100%;width:0%;background:var(--snackbar-progress);animation:fill var(--snackbar-progress-duration, 4s) linear forwards}@keyframes fill{to{width:100%}}.snackbar.is-default{--snackbar-border-color: var(--colors-border-primary, #d0d0d0);--snackbar-bg: var(--colors-surface-primary, white);--snackbar-text: #141414;--snackbar-title-color: #003995;--snackbar-icon-bg: #e5edf8;--snackbar-accent: #003995;--snackbar-input-border: #d0d0d0;--snackbar-progress: #003995}.snackbar.is-info{--snackbar-border-color: var(--colors-border-information, #457fa6);--snackbar-bg: var(--colors-surface-information, #ecf2f6);--snackbar-text: #24495c;--snackbar-title-color: #24495c;--snackbar-icon-bg: #a2bfd3;--snackbar-accent: #306a88;--snackbar-input-border: #a2bfd3;--snackbar-progress: #306a88}.snackbar.is-success{--snackbar-border-color: var(--colors-border-success, #3ba35a);--snackbar-bg: var(--colors-surface-success, #ebf6ee);--snackbar-text: #20522e;--snackbar-title-color: #20522e;--snackbar-icon-bg: #9dd1ac;--snackbar-accent: #2e7d3f;--snackbar-input-border: #9dd1ac;--snackbar-progress: #2e7d3f}.snackbar.is-warning{--snackbar-border-color: var(--colors-border-warning, #d1c844);--snackbar-bg: var(--colors-surface-warning, #faf9ec);--snackbar-text: #514a18;--snackbar-title-color: #514a18;--snackbar-icon-bg: #e8e3a1;--snackbar-accent: #7a6f13;--snackbar-input-border: #d1c844;--snackbar-progress: #7a6f13}.snackbar.is-error{--snackbar-border-color: var(--colors-border-error, #c73e3d);--snackbar-bg: var(--colors-surface-error, #f9ecec);--snackbar-text: #611a1a;--snackbar-title-color: #611a1a;--snackbar-icon-bg: #e39e9e;--snackbar-accent: #912525;--snackbar-input-border: #c73e3d;--snackbar-progress: #912525}.snackbar{position:fixed;top:24px;right:24px;z-index:1000;transform:translate(120%);transition:transform .6s ease}.snackbar.is-open{transform:translate(0)}lib-status-button{--status-button-padding: .25em .5em .25em 0}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: StatusButtonComponent, selector: "lib-status-button", inputs: ["label", "status", "leftIcon", "rightIcon", "hideLeftIcon", "hideRightIcon", "clearVariant"] }] }); }
93
+ }
94
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SnackbarComponent, decorators: [{
95
+ type: Component,
96
+ args: [{ selector: 'lib-snackbar', standalone: true, imports: [NgClass, StatusButtonComponent], template: "@if (visible) {\n <section\n class=\"snackbar\"\n [ngClass]=\"{\n 'is-default': purpose === 'default',\n 'is-info': purpose === 'info',\n 'is-success': purpose === 'success',\n 'is-error': purpose === 'error',\n 'is-warning': purpose === 'warning',\n 'is-open': isOpen,\n }\"\n role=\"status\"\n aria-live=\"polite\"\n [style.--snackbar-progress-duration]=\"progressMs + 'ms'\"\n [style.top.px]=\"y\"\n >\n <div class=\"snackbar__left\">\n @if(showTitle) {\n <div class=\"snackbar__title-row\">\n <span \n [ngClass]=\"{\n 'snackbar__title-icon': true,\n 'has-icon': showTitle && showTitleIcon\n }\"\n aria-hidden=\"true\"\n >\n @if (showTitle && showTitleIcon) {\n <i class=\"material-icons\" id=\"snackbar-title-icon\" aria-hidden=\"true\">{{ titleIcon }}</i>\n }\n </span>\n @if (showTitle) {\n <h3 class=\"snackbar__title\">{{ title }}</h3>\n }\n </div>\n }\n <p class=\"snackbar__desc\">\n {{ description }}\n </p>\n @if (showField) {\n <input class=\"snackbar__input\" type=\"text\" [placeholder]=\"fieldPlaceholder\" />\n }\n @if (showButton) {\n <lib-status-button\n label={{buttonLabel}}\n [status]=\"status\"\n [clearVariant]=\"true\"\n (click)=\"close()\"\n ></lib-status-button>\n\n }\n </div>\n <button \n type=\"button\"\n (click)=\"close()\"\n class=\"snackbar__close\"\n aria-label=\"Dismiss\"\n [style.visibility]=\"showClose ? 'visible' : 'hidden'\"\n >\n \u00D7\n </button>\n @if (showProgressBar) {\n <div class=\"snackbar__progress\">\n <div class=\"snackbar__progress-fill\"></div>\n </div>\n }\n </section>\n}\n", styles: [":root{--border-radius-md: 4px;--colors-border-primary: #d0d0d0;--colors-surface-primary: white;--colors-border-information: #457fa6;--colors-surface-information: #ecf2f6;--colors-border-success: #3ba35a;--colors-surface-success: #ebf6ee;--colors-border-warning: #d1c844;--colors-surface-warning: #faf9ec;--colors-border-error: #c73e3d;--colors-surface-error: #f9ecec}.snackbar{--snackbar-border-color: var(--colors-border-primary);--snackbar-bg: var(--colors-surface-primary);--snackbar-text: #141414;--snackbar-title-color: var(--snackbar-text);--snackbar-icon-bg: #e5edf8;--snackbar-accent: #0047ba;--snackbar-input-border: var(--snackbar-border-color);--snackbar-progress: var(--snackbar-accent);display:flex;width:26.25rem;padding:1.25rem 1rem;justify-content:space-between;align-items:flex-start;gap:.25rem;position:relative;border-radius:var(--border-radius-md, 4px);border:1px solid var(--snackbar-border-color);background:var(--snackbar-bg);box-shadow:1px 1px 4px #00000040;color:var(--snackbar-text)}.snackbar__left{display:grid;gap:.5rem;flex:1 1 auto}.snackbar__left>.snackbar__title-row~*{margin-left:var(--snackbar-right-gutter, 1.85rem)}.snackbar__title-row{display:flex;align-items:center;gap:.25rem}.snackbar__title{margin:0;font-weight:400;font-size:1.2rem;line-height:1.2;color:var(--snackbar-title-color)}.snackbar__title-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5em;height:1.5em}.snackbar__title-icon.has-icon{border-radius:50%;background:var(--snackbar-icon-bg);color:var(--snackbar-accent)}.snackbar__icon{font-weight:700;font-size:1rem;line-height:1}.snackbar__desc{margin:0;opacity:.9}.snackbar__input{width:100%;max-width:100%;box-sizing:border-box;padding:.5em;border-radius:4px;border:1px solid var(--snackbar-input-border);background:#fff;color:inherit}.snackbar__close{margin-left:.5em;border:0;background:transparent;color:inherit;opacity:.7;font-size:1.5rem;padding:.25rem;line-height:1;cursor:pointer}.snackbar__progress{position:absolute;left:0;right:0;bottom:-1px;height:4px;overflow:hidden;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}.snackbar__progress-fill{height:100%;width:0%;background:var(--snackbar-progress);animation:fill var(--snackbar-progress-duration, 4s) linear forwards}@keyframes fill{to{width:100%}}.snackbar.is-default{--snackbar-border-color: var(--colors-border-primary, #d0d0d0);--snackbar-bg: var(--colors-surface-primary, white);--snackbar-text: #141414;--snackbar-title-color: #003995;--snackbar-icon-bg: #e5edf8;--snackbar-accent: #003995;--snackbar-input-border: #d0d0d0;--snackbar-progress: #003995}.snackbar.is-info{--snackbar-border-color: var(--colors-border-information, #457fa6);--snackbar-bg: var(--colors-surface-information, #ecf2f6);--snackbar-text: #24495c;--snackbar-title-color: #24495c;--snackbar-icon-bg: #a2bfd3;--snackbar-accent: #306a88;--snackbar-input-border: #a2bfd3;--snackbar-progress: #306a88}.snackbar.is-success{--snackbar-border-color: var(--colors-border-success, #3ba35a);--snackbar-bg: var(--colors-surface-success, #ebf6ee);--snackbar-text: #20522e;--snackbar-title-color: #20522e;--snackbar-icon-bg: #9dd1ac;--snackbar-accent: #2e7d3f;--snackbar-input-border: #9dd1ac;--snackbar-progress: #2e7d3f}.snackbar.is-warning{--snackbar-border-color: var(--colors-border-warning, #d1c844);--snackbar-bg: var(--colors-surface-warning, #faf9ec);--snackbar-text: #514a18;--snackbar-title-color: #514a18;--snackbar-icon-bg: #e8e3a1;--snackbar-accent: #7a6f13;--snackbar-input-border: #d1c844;--snackbar-progress: #7a6f13}.snackbar.is-error{--snackbar-border-color: var(--colors-border-error, #c73e3d);--snackbar-bg: var(--colors-surface-error, #f9ecec);--snackbar-text: #611a1a;--snackbar-title-color: #611a1a;--snackbar-icon-bg: #e39e9e;--snackbar-accent: #912525;--snackbar-input-border: #c73e3d;--snackbar-progress: #912525}.snackbar{position:fixed;top:24px;right:24px;z-index:1000;transform:translate(120%);transition:transform .6s ease}.snackbar.is-open{transform:translate(0)}lib-status-button{--status-button-padding: .25em .5em .25em 0}\n"] }]
97
+ }], propDecorators: { purpose: [{
98
+ type: Input
99
+ }], title: [{
100
+ type: Input
101
+ }], description: [{
102
+ type: Input
103
+ }], fieldPlaceholder: [{
104
+ type: Input
105
+ }], titleIcon: [{
106
+ type: Input
107
+ }], buttonLabel: [{
108
+ type: Input
109
+ }], showTitle: [{
110
+ type: Input,
111
+ args: [{ transform: booleanAttribute }]
112
+ }], showTitleIcon: [{
113
+ type: Input,
114
+ args: [{ transform: booleanAttribute }]
115
+ }], showClose: [{
116
+ type: Input,
117
+ args: [{ transform: booleanAttribute }]
118
+ }], showProgressBar: [{
119
+ type: Input,
120
+ args: [{ transform: booleanAttribute }]
121
+ }], showField: [{
122
+ type: Input,
123
+ args: [{ transform: booleanAttribute }]
124
+ }], showButton: [{
125
+ type: Input,
126
+ args: [{ transform: booleanAttribute }]
127
+ }], autoDismiss: [{
128
+ type: Input,
129
+ args: [{ transform: booleanAttribute }]
130
+ }], visible: [{
131
+ type: Input,
132
+ args: [{ transform: booleanAttribute }]
133
+ }], progressMs: [{
134
+ type: Input
135
+ }], y: [{
136
+ type: Input
137
+ }], closed: [{
138
+ type: Output
139
+ }], visibleChange: [{
140
+ type: Output
141
+ }] } });
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL3NuYWNrYmFyL3NuYWNrYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zbmFja2Jhci9zbmFja2Jhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUtOLGdCQUFnQixHQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFVLE1BQU0sMENBQTBDLENBQUM7O0FBR3pGLE1BQU0sa0JBQWtCLEdBQW9DO0lBQ3hELE9BQU8sRUFBRSxNQUFNO0lBQ2YsSUFBSSxFQUFFLE1BQU07SUFDWixPQUFPLEVBQUUsU0FBUztJQUNsQixLQUFLLEVBQUUsT0FBTztJQUNkLE9BQU8sRUFBRSxTQUFTO0NBQ3JCLENBQUM7QUFTRixNQUFNLE9BQU8saUJBQWlCO0lBUDlCO1FBUWEsWUFBTyxHQUFvQixTQUFTLENBQUM7UUFDckMsVUFBSyxHQUFHLGdCQUFnQixDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsYUFBYSxDQUFDO1FBQzVCLHFCQUFnQixHQUFHLGFBQWEsQ0FBQztRQUNqQyxjQUFTLEdBQVcsTUFBTSxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsTUFBTSxDQUFDO1FBQ1UsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksQ0FBQztRQUNyQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZUFBVSxHQUFHLElBQUks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YUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBib29sZWFuQXR0cmlidXRlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgU3RhdHVzQnV0dG9uQ29tcG9uZW50LCBTdGF0dXMgfSBmcm9tICcuLi9zdGF0dXMtYnV0dG9uL3N0YXR1cy1idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCB0eXBlIFNuYWNrYmFyUHVycG9zZSA9ICdkZWZhdWx0JyB8ICdpbmZvJyB8ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZyc7XG5cbmNvbnN0IHB1cnBvc2VUb1N0YXR1c01hcDogUmVjb3JkPFNuYWNrYmFyUHVycG9zZSwgU3RhdHVzPiA9IHtcbiAgICBkZWZhdWx0OiAnaW5mbycsXG4gICAgaW5mbzogJ2luZm8nLFxuICAgIHN1Y2Nlc3M6ICdzdWNjZXNzJyxcbiAgICBlcnJvcjogJ2Vycm9yJyxcbiAgICB3YXJuaW5nOiAnd2FybmluZycsXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1zbmFja2JhcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdDbGFzcywgU3RhdHVzQnV0dG9uQ29tcG9uZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc25hY2tiYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zbmFja2Jhci5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFNuYWNrYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgcHVycG9zZTogU25hY2tiYXJQdXJwb3NlID0gJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIHRpdGxlID0gJ1NuYWNrYmFyIFRpdGxlJztcbiAgICBASW5wdXQoKSBkZXNjcmlwdGlvbiA9ICdMb3JlbSBpcHN1bSc7XG4gICAgQElucHV0KCkgZmllbGRQbGFjZWhvbGRlciA9ICdQbGFjZWhvbGRlcic7XG4gICAgQElucHV0KCkgdGl0bGVJY29uOiBzdHJpbmcgPSAnaW5mbyc7XG4gICAgQElucHV0KCkgYnV0dG9uTGFiZWwgPSAnRG9uZSc7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHNob3dUaXRsZUljb24gPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93Q2xvc2UgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93UHJvZ3Jlc3NCYXIgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93RmllbGQgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93QnV0dG9uID0gdHJ1ZTtcbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgYXV0b0Rpc21pc3MgPSB0cnVlO1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSB2aXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwcm9ncmVzc01zID0gNDAwMDtcbiAgICBASW5wdXQoKSB5ID0gMjQ7XG5cbiAgICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgaXNPcGVuID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRpc21pc3NUaW1lcj86IG51bWJlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IEVYSVRfTVMgPSAzMDA7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgLy8gZW50ZXIgb24gbmV4dCB0aWNrXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+ICh0aGlzLmlzT3BlbiA9IHRydWUpLCAwKTtcbiAgICAgICAgICAgIHRoaXMuc3RhcnREaXNtaXNzVGltZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCd2aXNpYmxlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICAvLyB3aGVuIHBhcmVudCB0b2dnbGVzIHZpc2libGVcbiAgICAgICAgICAgIGlmICh0aGlzLnZpc2libGUpIHtcbiAgICAgICAgICAgICAgICAvLyBiZWNvbWluZyB2aXNpYmxlIC0+IG9wZW4gKyAocmUpc3RhcnQgdGltZXJcbiAgICAgICAgICAgICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuaXNPcGVuID0gdHJ1ZSksIDApO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnREaXNtaXNzVGltZXIoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gYmVjb21pbmcgaGlkZGVuIC0+IHN0b3AgdGltZXJzIGFuZCBlbnN1cmUgY2xvc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgdGhpcy5jbGVhckRpc21pc3NUaW1lcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNPcGVuID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhckRpc21pc3NUaW1lcigpO1xuICAgIH1cblxuICAgIC8vIHVzZWQgYnkgdGhlIMOXIGJ1dHRvbiwgZG9uZSBidXR0b24sIGFuZCBhdXRvLWRpc21pc3NcbiAgICBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbiAmJiAhdGhpcy52aXNpYmxlKSByZXR1cm47XG4gICAgICAgIHRoaXMuY2xlYXJEaXNtaXNzVGltZXIoKTtcbiAgICAgICAgdGhpcy5pc09wZW4gPSBmYWxzZTsgLy8gdHJpZ2dlcnMgZXhpdCB0cmFuc2l0aW9uXG5cbiAgICAgICAgLy8gYWZ0ZXIgZXhpdCBhbmltYXRpb24sIGhpZGUgKyBub3RpZnlcbiAgICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICAgICAgfSwgdGhpcy5FWElUX01TKTtcbiAgICB9XG5cbiAgICBnZXQgc3RhdHVzKCk6IFN0YXR1cyB7XG4gICAgICAgIHJldHVybiBwdXJwb3NlVG9TdGF0dXNNYXBbdGhpcy5wdXJwb3NlXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXJ0RGlzbWlzc1RpbWVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuYXV0b0Rpc21pc3MpIHJldHVybjtcbiAgICAgICAgdGhpcy5jbGVhckRpc21pc3NUaW1lcigpO1xuICAgICAgICB0aGlzLmRpc21pc3NUaW1lciA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2UoKSwgdGhpcy5wcm9ncmVzc01zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyRGlzbWlzc1RpbWVyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNtaXNzVGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRpc21pc3NUaW1lcik7XG4gICAgICAgICAgICB0aGlzLmRpc21pc3NUaW1lciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAodmlzaWJsZSkge1xuICAgIDxzZWN0aW9uXG4gICAgICAgIGNsYXNzPVwic25hY2tiYXJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnaXMtZGVmYXVsdCc6IHB1cnBvc2UgPT09ICdkZWZhdWx0JyxcbiAgICAgICAgICAgICdpcy1pbmZvJzogcHVycG9zZSA9PT0gJ2luZm8nLFxuICAgICAgICAgICAgJ2lzLXN1Y2Nlc3MnOiBwdXJwb3NlID09PSAnc3VjY2VzcycsXG4gICAgICAgICAgICAnaXMtZXJyb3InOiBwdXJwb3NlID09PSAnZXJyb3InLFxuICAgICAgICAgICAgJ2lzLXdhcm5pbmcnOiBwdXJwb3NlID09PSAnd2FybmluZycsXG4gICAgICAgICAgICAnaXMtb3Blbic6IGlzT3BlbixcbiAgICAgICAgfVwiXG4gICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICBbc3R5bGUuLS1zbmFja2Jhci1wcm9ncmVzcy1kdXJhdGlvbl09XCJwcm9ncmVzc01zICsgJ21zJ1wiXG4gICAgICAgIFtzdHlsZS50b3AucHhdPVwieVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic25hY2tiYXJfX2xlZnRcIj5cbiAgICAgICAgICAgIEBpZihzaG93VGl0bGUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic25hY2tiYXJfX3RpdGxlLXJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc25hY2tiYXJfX3RpdGxlLWljb24nOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoYXMtaWNvbic6IHNob3dUaXRsZSAmJiBzaG93VGl0bGVJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1RpdGxlICYmIHNob3dUaXRsZUljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zXCIgaWQ9XCJzbmFja2Jhci10aXRsZS1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+e3sgdGl0bGVJY29uIH19PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoc2hvd1RpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJzbmFja2Jhcl9fdGl0bGVcIj57eyB0aXRsZSB9fTwvaDM+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxwIGNsYXNzPVwic25hY2tiYXJfX2Rlc2NcIj5cbiAgICAgICAgICAgICAgICB7eyBkZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgQGlmIChzaG93RmllbGQpIHtcbiAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzbmFja2Jhcl9faW5wdXRcIiB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZFBsYWNlaG9sZGVyXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2hvd0J1dHRvbikge1xuICAgICAgICAgICAgICAgIDxsaWItc3RhdHVzLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBsYWJlbD17e2J1dHRvbkxhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xlYXJWYXJpYW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgPjwvbGliLXN0YXR1cy1idXR0b24+XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b24gXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZSgpXCJcbiAgICAgICAgICAgIGNsYXNzPVwic25hY2tiYXJfX2Nsb3NlXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJEaXNtaXNzXCJcbiAgICAgICAgICAgIFtzdHlsZS52aXNpYmlsaXR5XT1cInNob3dDbG9zZSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgw5dcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIEBpZiAoc2hvd1Byb2dyZXNzQmFyKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic25hY2tiYXJfX3Byb2dyZXNzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNuYWNrYmFyX19wcm9ncmVzcy1maWxsXCI+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvc2VjdGlvbj5cbn1cbiJdfQ==
@@ -0,0 +1,82 @@
1
+ import { Injectable, createComponent } from '@angular/core';
2
+ import { SnackbarComponent } from './snackbar.component';
3
+ import * as i0 from "@angular/core";
4
+ export class SnackbarService {
5
+ constructor(appRef, env) {
6
+ this.appRef = appRef;
7
+ this.env = env;
8
+ }
9
+ /**
10
+ * This open method is what consuming code will use to create a snackbar
11
+ * @param snackbarOptions interface found above
12
+ * @param anchor HTML Element, optional. The snackbar's entrance and exit animations will happen on this element's Y axis (px)
13
+ * @returns void.
14
+ */
15
+ open(snackbarOptions = {}, anchor) {
16
+ const compRef = createComponent(SnackbarComponent, {
17
+ environmentInjector: this.env,
18
+ });
19
+ const desiredY = anchor // could be clamped if above or below viewport
20
+ ? anchor.getBoundingClientRect().top
21
+ : snackbarOptions.y ?? 24;
22
+ Object.assign(compRef.instance, {
23
+ purpose: 'warning',
24
+ title: 'Snackbar Title',
25
+ description: 'Lorem ipsum is the standard dummy text in the design industry',
26
+ titleIcon: 'info',
27
+ fieldPlaceholder: 'Placeholder',
28
+ showTitle: true,
29
+ showTitleIcon: true,
30
+ showClose: true,
31
+ showProgressBar: true,
32
+ showField: true,
33
+ showButton: true,
34
+ progressMs: 4000,
35
+ autoDismiss: true,
36
+ y: desiredY,
37
+ right: 24,
38
+ zIndex: 10000,
39
+ visible: true,
40
+ ...snackbarOptions,
41
+ });
42
+ this.appRef.attachView(compRef.hostView);
43
+ document.body.appendChild(compRef.location.nativeElement);
44
+ compRef.changeDetectorRef.detectChanges();
45
+ // Clamp Y after it’s in the DOM
46
+ const margin = 8;
47
+ const adjustY = () => {
48
+ const host = compRef.location.nativeElement.querySelector('section.snackbar') ??
49
+ compRef.location.nativeElement;
50
+ const h = host.offsetHeight || 0;
51
+ const maxTop = Math.max(margin, window.innerHeight - h - margin);
52
+ const clamped = Math.min(Math.max(desiredY, margin), maxTop);
53
+ if (compRef.instance.y !== clamped) {
54
+ compRef.instance.y = clamped;
55
+ compRef.changeDetectorRef.detectChanges();
56
+ }
57
+ };
58
+ // Measure on next frame (styles applied)
59
+ const rafId = requestAnimationFrame(adjustY);
60
+ // re-clamp on resize (in case viewport changes while visible)
61
+ const onResize = () => adjustY();
62
+ window.addEventListener('resize', onResize);
63
+ // Cleanup when closed
64
+ const sub = compRef.instance.closed.subscribe(() => {
65
+ sub.unsubscribe();
66
+ cancelAnimationFrame(rafId);
67
+ window.removeEventListener('resize', onResize);
68
+ this.appRef.detachView(compRef.hostView);
69
+ compRef.destroy();
70
+ });
71
+ return {
72
+ close: () => compRef.instance.close(),
73
+ };
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SnackbarService, deps: [{ token: i0.ApplicationRef }, { token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
76
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SnackbarService, providedIn: 'root' }); }
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SnackbarService, decorators: [{
79
+ type: Injectable,
80
+ args: [{ providedIn: 'root' }]
81
+ }], ctorParameters: () => [{ type: i0.ApplicationRef }, { type: i0.EnvironmentInjector }] });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hY2tiYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zbmFja2Jhci9zbmFja2Jhci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVDLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0sc0JBQXNCLENBQUM7O0FBc0IxRSxNQUFNLE9BQU8sZUFBZTtJQUN4QixZQUNZLE1BQXNCLEVBQ3RCLEdBQXdCO1FBRHhCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQXFCO0lBQ2pDLENBQUM7SUFFSjs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxrQkFBbUMsRUFBRSxFQUFFLE1BQW9CO1FBQzVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsR0FBRztTQUNoQyxDQUFDLENBQUM7UUFFSCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsOENBQThDO1lBQ2xFLENBQUMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxHQUFHO1lBQ3BDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU5QixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDNUIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixXQUFXLEVBQUUsK0RBQStEO1lBQzVFLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLGdCQUFnQixFQUFFLGFBQWE7WUFFL0IsU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtZQUNuQixTQUFTLEVBQUUsSUFBSTtZQUNmLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsVUFBVSxFQUFFLElBQUk7WUFFaEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFFakIsQ0FBQyxFQUFFLFFBQVE7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULE1BQU0sRUFBRSxLQUFLO1lBRWIsT0FBTyxFQUFFLElBQUk7WUFDYixHQUFHLGVBQWU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDMUQsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTFDLGdDQUFnQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakIsTUFBTSxPQUFPLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxHQUNMLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBNkIsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2hGLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBNkIsQ0FBQztZQUVwRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztZQUNqQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUNqRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTdELElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztnQkFDN0IsT0FBTyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRix5Q0FBeUM7UUFDekMsTUFBTSxLQUFLLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFN0MsOERBQThEO1FBQzlELE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFNUMsc0JBQXNCO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xCLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU87WUFDSCxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7U0FDeEMsQ0FBQztJQUNOLENBQUM7OEdBdEZRLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEFwcGxpY2F0aW9uUmVmLCBFbnZpcm9ubWVudEluamVjdG9yLCBjcmVhdGVDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNuYWNrYmFyQ29tcG9uZW50LCBTbmFja2JhclB1cnBvc2UgfSBmcm9tICcuL3NuYWNrYmFyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU25hY2tiYXJPcHRpb25zIHtcbiAgICBwdXJwb3NlPzogU25hY2tiYXJQdXJwb3NlO1xuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHRpdGxlSWNvbj86IHN0cmluZztcbiAgICBmaWVsZFBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIHNob3dUaXRsZT86IGJvb2xlYW47XG4gICAgc2hvd1RpdGxlSWNvbj86IGJvb2xlYW47XG4gICAgc2hvd0Nsb3NlPzogYm9vbGVhbjtcbiAgICBzaG93UHJvZ3Jlc3NCYXI/OiBib29sZWFuO1xuICAgIHNob3dGaWVsZD86IGJvb2xlYW47XG4gICAgc2hvd0J1dHRvbj86IGJvb2xlYW47XG4gICAgcHJvZ3Jlc3NNcz86IG51bWJlcjtcbiAgICBhdXRvRGlzbWlzcz86IGJvb2xlYW47XG4gICAgeT86IG51bWJlcjtcbiAgICByaWdodD86IG51bWJlcjtcbiAgICB6SW5kZXg/OiBudW1iZXI7XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU25hY2tiYXJTZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIGVudjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICApIHt9XG5cbiAgICAvKipcbiAgICAgKiBUaGlzIG9wZW4gbWV0aG9kIGlzIHdoYXQgY29uc3VtaW5nIGNvZGUgd2lsbCB1c2UgdG8gY3JlYXRlIGEgc25hY2tiYXJcbiAgICAgKiBAcGFyYW0gc25hY2tiYXJPcHRpb25zIGludGVyZmFjZSBmb3VuZCBhYm92ZVxuICAgICAqIEBwYXJhbSBhbmNob3IgSFRNTCBFbGVtZW50LCBvcHRpb25hbC4gVGhlIHNuYWNrYmFyJ3MgZW50cmFuY2UgYW5kIGV4aXQgYW5pbWF0aW9ucyB3aWxsIGhhcHBlbiBvbiB0aGlzIGVsZW1lbnQncyBZIGF4aXMgKHB4KVxuICAgICAqIEByZXR1cm5zIHZvaWQuXG4gICAgICovXG4gICAgb3BlbihzbmFja2Jhck9wdGlvbnM6IFNuYWNrYmFyT3B0aW9ucyA9IHt9LCBhbmNob3I/OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb21wUmVmID0gY3JlYXRlQ29tcG9uZW50KFNuYWNrYmFyQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOiB0aGlzLmVudixcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgZGVzaXJlZFkgPSBhbmNob3IgLy8gY291bGQgYmUgY2xhbXBlZCBpZiBhYm92ZSBvciBiZWxvdyB2aWV3cG9ydFxuICAgICAgICAgICAgPyBhbmNob3IuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wXG4gICAgICAgICAgICA6IHNuYWNrYmFyT3B0aW9ucy55ID8/IDI0O1xuXG4gICAgICAgIE9iamVjdC5hc3NpZ24oY29tcFJlZi5pbnN0YW5jZSwge1xuICAgICAgICAgICAgcHVycG9zZTogJ3dhcm5pbmcnLFxuICAgICAgICAgICAgdGl0bGU6ICdTbmFja2JhciBUaXRsZScsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0xvcmVtIGlwc3VtIGlzIHRoZSBzdGFuZGFyZCBkdW1teSB0ZXh0IGluIHRoZSBkZXNpZ24gaW5kdXN0cnknLFxuICAgICAgICAgICAgdGl0bGVJY29uOiAnaW5mbycsXG4gICAgICAgICAgICBmaWVsZFBsYWNlaG9sZGVyOiAnUGxhY2Vob2xkZXInLFxuXG4gICAgICAgICAgICBzaG93VGl0bGU6IHRydWUsXG4gICAgICAgICAgICBzaG93VGl0bGVJY29uOiB0cnVlLFxuICAgICAgICAgICAgc2hvd0Nsb3NlOiB0cnVlLFxuICAgICAgICAgICAgc2hvd1Byb2dyZXNzQmFyOiB0cnVlLFxuICAgICAgICAgICAgc2hvd0ZpZWxkOiB0cnVlLFxuICAgICAgICAgICAgc2hvd0J1dHRvbjogdHJ1ZSxcblxuICAgICAgICAgICAgcHJvZ3Jlc3NNczogNDAwMCxcbiAgICAgICAgICAgIGF1dG9EaXNtaXNzOiB0cnVlLFxuXG4gICAgICAgICAgICB5OiBkZXNpcmVkWSxcbiAgICAgICAgICAgIHJpZ2h0OiAyNCxcbiAgICAgICAgICAgIHpJbmRleDogMTAwMDAsXG5cbiAgICAgICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgICAgICAuLi5zbmFja2Jhck9wdGlvbnMsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29tcFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29tcFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgLy8gQ2xhbXAgWSBhZnRlciBpdOKAmXMgaW4gdGhlIERPTVxuICAgICAgICBjb25zdCBtYXJnaW4gPSA4O1xuICAgICAgICBjb25zdCBhZGp1c3RZID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaG9zdDogSFRNTEVsZW1lbnQgPVxuICAgICAgICAgICAgICAgIChjb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJ3NlY3Rpb24uc25hY2tiYXInKSA/P1xuICAgICAgICAgICAgICAgIChjb21wUmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuXG4gICAgICAgICAgICBjb25zdCBoID0gaG9zdC5vZmZzZXRIZWlnaHQgfHwgMDtcbiAgICAgICAgICAgIGNvbnN0IG1heFRvcCA9IE1hdGgubWF4KG1hcmdpbiwgd2luZG93LmlubmVySGVpZ2h0IC0gaCAtIG1hcmdpbik7XG4gICAgICAgICAgICBjb25zdCBjbGFtcGVkID0gTWF0aC5taW4oTWF0aC5tYXgoZGVzaXJlZFksIG1hcmdpbiksIG1heFRvcCk7XG5cbiAgICAgICAgICAgIGlmIChjb21wUmVmLmluc3RhbmNlLnkgIT09IGNsYW1wZWQpIHtcbiAgICAgICAgICAgICAgICBjb21wUmVmLmluc3RhbmNlLnkgPSBjbGFtcGVkO1xuICAgICAgICAgICAgICAgIGNvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIE1lYXN1cmUgb24gbmV4dCBmcmFtZSAoc3R5bGVzIGFwcGxpZWQpXG4gICAgICAgIGNvbnN0IHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGFkanVzdFkpO1xuXG4gICAgICAgIC8vIHJlLWNsYW1wIG9uIHJlc2l6ZSAoaW4gY2FzZSB2aWV3cG9ydCBjaGFuZ2VzIHdoaWxlIHZpc2libGUpXG4gICAgICAgIGNvbnN0IG9uUmVzaXplID0gKCkgPT4gYWRqdXN0WSgpO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25SZXNpemUpO1xuXG4gICAgICAgIC8vIENsZWFudXAgd2hlbiBjbG9zZWRcbiAgICAgICAgY29uc3Qgc3ViID0gY29tcFJlZi5pbnN0YW5jZS5jbG9zZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uUmVzaXplKTtcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcFJlZi5ob3N0Vmlldyk7XG4gICAgICAgICAgICBjb21wUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNsb3NlOiAoKSA9PiBjb21wUmVmLmluc3RhbmNlLmNsb3NlKCksXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
@@ -17,6 +17,7 @@ export class StatusButtonComponent {
17
17
  this._rightIcon = '';
18
18
  this._hideLeftIcon = false;
19
19
  this._hideRightIcon = false;
20
+ this._clearVariant = false;
20
21
  }
21
22
  set status(value) {
22
23
  this._status = value || 'info';
@@ -52,6 +53,12 @@ export class StatusButtonComponent {
52
53
  get hideRightIcon() {
53
54
  return this._hideRightIcon;
54
55
  }
56
+ set clearVariant(value) {
57
+ this._clearVariant = value;
58
+ }
59
+ get clearVariant() {
60
+ return this._clearVariant;
61
+ }
55
62
  /** helper for default left icons */
56
63
  getDefaultLeftIcon(status) {
57
64
  switch (status) {
@@ -70,11 +77,11 @@ export class StatusButtonComponent {
70
77
  }
71
78
  }
72
79
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StatusButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.0", type: StatusButtonComponent, isStandalone: true, selector: "lib-status-button", inputs: { label: "label", status: "status", leftIcon: "leftIcon", rightIcon: "rightIcon", hideLeftIcon: ["hideLeftIcon", "hideLeftIcon", booleanAttribute], hideRightIcon: ["hideRightIcon", "hideRightIcon", booleanAttribute] }, ngImport: i0, template: "<button\n type=\"button\"\n [className]=\"status\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:16px;font-weight:400;gap:8px;height:36px;justify-content:center;padding:4px 8px}button .icon{font-size:20px}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
80
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.0", type: StatusButtonComponent, isStandalone: true, selector: "lib-status-button", inputs: { label: "label", status: "status", leftIcon: "leftIcon", rightIcon: "rightIcon", hideLeftIcon: ["hideLeftIcon", "hideLeftIcon", booleanAttribute], hideRightIcon: ["hideRightIcon", "hideRightIcon", booleanAttribute], clearVariant: ["clearVariant", "clearVariant", booleanAttribute] }, ngImport: i0, template: "<button\n type=\"button\"\n [ngClass]=\"[\n status,\n clearVariant ? 'strokeless transparent-bg' : ''\n ]\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:1em;font-weight:400;gap:.5em;height:2.25em;justify-content:center;padding:var(--status-button-padding, .25em .5em)}button .icon{font-size:1.25em}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}button.strokeless{border:0px}button.transparent-bg{background:transparent}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
74
81
  }
75
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: StatusButtonComponent, decorators: [{
76
83
  type: Component,
77
- args: [{ selector: 'lib-status-button', standalone: true, imports: [CommonModule, NgIf], template: "<button\n type=\"button\"\n [className]=\"status\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:16px;font-weight:400;gap:8px;height:36px;justify-content:center;padding:4px 8px}button .icon{font-size:20px}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}\n"] }]
84
+ args: [{ selector: 'lib-status-button', standalone: true, imports: [CommonModule, NgIf], template: "<button\n type=\"button\"\n [ngClass]=\"[\n status,\n clearVariant ? 'strokeless transparent-bg' : ''\n ]\"\n>\n <span *ngIf=\"leftIcon\" class=\"icon material-symbols-outlined\">{{ leftIcon }}</span>\n {{ label }}\n <span *ngIf=\"rightIcon\" class=\"icon material-symbols-outlined\">{{ rightIcon }}</span>\n</button>\n", styles: ["button{align-items:center;background-color:#ecf2f6;border:1px solid #457fa6;border-radius:4px;color:#3e7295;display:inline-flex;flex-shrink:0;font-size:1em;font-weight:400;gap:.5em;height:2.25em;justify-content:center;padding:var(--status-button-padding, .25em .5em)}button .icon{font-size:1.25em}button:focus{outline:2px solid #b967c7;outline-offset:2px}button:hover{background-color:#a2bfd3;color:#26485f;cursor:pointer}button.success{background-color:#ebf6ee;border:1px solid #3ba35a;color:#1d562e}button.success:hover{background-color:#9dd1ac;color:#1d562e}button.info{background-color:#ecf2f6;border:1px solid #457fa6;color:#3e7295}button.info:hover{background-color:#a2bfd3;color:#26485f}button.warning{background-color:#faf9ec;border:1px solid #d1c844;color:#635f04}button.warning:hover{background-color:#e8e3a1;color:#635f04}button.error{background-color:#f9ecec;border:1px solid #c73e3d;color:#702121}button.error:hover{background-color:#e39e9e;color:#702121}button.disabled{background-color:#e7e7e7;border:1px solid #8f8f8f;color:#767676}button.disabled:hover{background-color:#d0d0d0;color:#141414}button.strokeless{border:0px}button.transparent-bg{background:transparent}\n"] }]
78
85
  }], propDecorators: { label: [{
79
86
  type: Input,
80
87
  args: [{ required: true }]
@@ -90,5 +97,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
90
97
  }], hideRightIcon: [{
91
98
  type: Input,
92
99
  args: [{ transform: booleanAttribute }]
100
+ }], clearVariant: [{
101
+ type: Input,
102
+ args: [{ transform: booleanAttribute }]
93
103
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc3RhdHVzLWJ1dHRvbi9zdGF0dXMtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGF0dXMtYnV0dG9uL3N0YXR1cy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBRXJEOzs7Ozs7O0dBT0c7QUFRSCxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBUVksWUFBTyxHQUEwRCxNQUFNLENBQUM7UUFDeEUsY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNmLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7S0ErRGxDO0lBM0RHLElBQ0ksTUFBTSxDQUFDLEtBQTREO1FBQ25FLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxJQUFJLE1BQU0sQ0FBQztJQUNuQyxDQUFDO0lBQ0QsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNJLFFBQVEsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELElBQ0ksU0FBUyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUNELElBQUksU0FBUztRQUNULElBQUksSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksZUFBZSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUNJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQ0ksYUFBYSxDQUFDLEtBQWM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUNELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRUQsb0NBQW9DO0lBQzVCLGtCQUFrQixDQUFDLE1BQTJCO1FBQ2xELFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDYixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxPQUFPLENBQUM7WUFDbkIsS0FBSyxNQUFNO2dCQUNQLE9BQU8sTUFBTSxDQUFDO1lBQ2xCLEtBQUssU0FBUztnQkFDVixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxPQUFPLENBQUM7WUFDbkIsS0FBSyxVQUFVO2dCQUNYLE9BQU8sT0FBTyxDQUFDO1lBQ25CO2dCQUNJLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDOzhHQW5FUSxxQkFBcUI7a0dBQXJCLHFCQUFxQiw4TEFtQ1YsZ0JBQWdCLHFEQVFoQixnQkFBZ0IsNkJDN0R4Qyx1UkFRQSwybUNETWMsWUFBWTs7MkZBSWIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDOzhCQVdGLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUdyQixNQUFNO3NCQURULEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSztnQkFVRixZQUFZO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBU2xDLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqIEEgYnV0dG9uIHRoYXQgaW5kaWNhdGVzIHN0YXR1cyB3aXRoIGNvbG9yIGFuZCBpY29uLlxuICogU3RhdHVzIGNhbiBiZSBvbmUgb2Y6ICdzdWNjZXNzJywgJ2luZm8nLCAnd2FybmluZycsICdlcnJvcicsIG9yICdkaXNhYmxlZCcuXG4gKiBFYWNoIHN0YXR1cyBoYXMgYSBkZWZhdWx0IGxlZnQgaWNvbiwgYnV0IGEgY3VzdG9tIGxlZnQgaWNvbiBjYW4gYmUgcHJvdmlkZWQuXG4gKiBBIHJpZ2h0IGljb24gY2FuIGFsc28gYmUgcHJvdmlkZWQsIGRlZmF1bHRpbmcgdG8gJ2NoZXZyb25fcmlnaHQnLlxuICogVGhlIGxlZnQgYW5kIHJpZ2h0IGljb25zIGNhbiBiZSBoaWRkZW4gd2l0aCB0aGUgYGhpZGVMZWZ0SWNvbmAgYW5kIGBoaWRlUmlnaHRJY29uYCBib29sZWFuIGlucHV0cy5cbiAqIEEgbGFiZWwgaW5wdXQgaXMgcmVxdWlyZWQuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGliLXN0YXR1cy1idXR0b24nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmdJZl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0YXR1cy1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9zdGF0dXMtYnV0dG9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgU3RhdHVzQnV0dG9uQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIF9zdGF0dXM6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnZGlzYWJsZWQnID0gJ2luZm8nO1xuICAgIHByaXZhdGUgX2xlZnRJY29uID0gJyc7XG4gICAgcHJpdmF0ZSBfcmlnaHRJY29uID0gJyc7XG4gICAgcHJpdmF0ZSBfaGlkZUxlZnRJY29uID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfaGlkZVJpZ2h0SWNvbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbGFiZWwhOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBzdGF0dXModmFsdWU6ICdzdWNjZXNzJyB8ICdpbmZvJyB8ICd3YXJuaW5nJyB8ICdlcnJvcicgfCAnZGlzYWJsZWQnKSB7XG4gICAgICAgIHRoaXMuX3N0YXR1cyA9IHZhbHVlIHx8ICdpbmZvJztcbiAgICB9XG4gICAgZ2V0IHN0YXR1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cztcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsZWZ0SWNvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xlZnRJY29uID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBsZWZ0SWNvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2hpZGVMZWZ0SWNvbikgcmV0dXJuICcnO1xuICAgICAgICByZXR1cm4gdGhpcy5fbGVmdEljb24gfHwgdGhpcy5nZXREZWZhdWx0TGVmdEljb24odGhpcy5fc3RhdHVzKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCByaWdodEljb24odmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9yaWdodEljb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IHJpZ2h0SWNvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuX2hpZGVSaWdodEljb24pIHJldHVybiAnJztcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JpZ2h0SWNvbiB8fCAnY2hldnJvbl9yaWdodCc7XG4gICAgfVxuXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgc2V0IGhpZGVMZWZ0SWNvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oaWRlTGVmdEljb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhpZGVMZWZ0SWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVMZWZ0SWNvbjtcbiAgICB9XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgaGlkZVJpZ2h0SWNvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oaWRlUmlnaHRJY29uID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBoaWRlUmlnaHRJY29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZVJpZ2h0SWNvbjtcbiAgICB9XG5cbiAgICAvKiogaGVscGVyIGZvciBkZWZhdWx0IGxlZnQgaWNvbnMgKi9cbiAgICBwcml2YXRlIGdldERlZmF1bHRMZWZ0SWNvbihzdGF0dXM6IHR5cGVvZiB0aGlzLl9zdGF0dXMpOiBzdHJpbmcge1xuICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSAnc3VjY2Vzcyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjaGVjayc7XG4gICAgICAgICAgICBjYXNlICdpbmZvJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2luZm8nO1xuICAgICAgICAgICAgY2FzZSAnd2FybmluZyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd3YXJuaW5nJztcbiAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Vycm9yJztcbiAgICAgICAgICAgIGNhc2UgJ2Rpc2FibGVkJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2Jsb2NrJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGJ1dHRvblxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIFtjbGFzc05hbWVdPVwic3RhdHVzXCJcbj5cbiAgICA8c3BhbiAqbmdJZj1cImxlZnRJY29uXCIgY2xhc3M9XCJpY29uIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57eyBsZWZ0SWNvbiB9fTwvc3Bhbj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxzcGFuICpuZ0lmPVwicmlnaHRJY29uXCIgY2xhc3M9XCJpY29uIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57eyByaWdodEljb24gfX08L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc3RhdHVzLWJ1dHRvbi9zdGF0dXMtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGF0dXMtYnV0dG9uL3N0YXR1cy1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBR3JEOzs7Ozs7O0dBT0c7QUFRSCxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBUVksWUFBTyxHQUFXLE1BQU0sQ0FBQztRQUN6QixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QixrQkFBYSxHQUFHLEtBQUssQ0FBQztLQXVFakM7SUFuRUcsSUFDSSxNQUFNLENBQUMsS0FBNEQ7UUFDbkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLElBQUksTUFBTSxDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQ0ksUUFBUSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksUUFBUTtRQUNSLElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFDSSxTQUFTLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxlQUFlLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQ0ksWUFBWSxDQUFDLEtBQWM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUNELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFDSSxhQUFhLENBQUMsS0FBYztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUNJLFlBQVksQ0FBQyxLQUFjO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELG9DQUFvQztJQUM1QixrQkFBa0IsQ0FBQyxNQUEyQjtRQUNsRCxRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2IsS0FBSyxTQUFTO2dCQUNWLE9BQU8sT0FBTyxDQUFDO1lBQ25CLEtBQUssTUFBTTtnQkFDUCxPQUFPLE1BQU0sQ0FBQztZQUNsQixLQUFLLFNBQVM7Z0JBQ1YsT0FBTyxTQUFTLENBQUM7WUFDckIsS0FBSyxPQUFPO2dCQUNSLE9BQU8sT0FBTyxDQUFDO1lBQ25CLEtBQUssVUFBVTtnQkFDWCxPQUFPLE9BQU8sQ0FBQztZQUNuQjtnQkFDSSxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDO0lBQ0wsQ0FBQzs4R0E1RVEscUJBQXFCO2tHQUFyQixxQkFBcUIsOExBb0NWLGdCQUFnQixxREFRaEIsZ0JBQWdCLGtEQVFoQixnQkFBZ0IsNkJDdkV4QyxpV0FXQSwwdENESWMsWUFBWTs7MkZBSWIscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDOzhCQVlGLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUdyQixNQUFNO3NCQURULEtBQUs7Z0JBU0YsUUFBUTtzQkFEWCxLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSztnQkFVRixZQUFZO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBU2xDLGFBQWE7c0JBRGhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBU2xDLFlBQVk7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJvb2xlYW5BdHRyaWJ1dGUsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5leHBvcnQgdHlwZSBTdGF0dXMgPSAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybmluZycgfCAnZXJyb3InIHwgJ2Rpc2FibGVkJztcblxuLyoqXG4gKiBBIGJ1dHRvbiB0aGF0IGluZGljYXRlcyBzdGF0dXMgd2l0aCBjb2xvciBhbmQgaWNvbi5cbiAqIFN0YXR1cyBjYW4gYmUgb25lIG9mOiAnc3VjY2VzcycsICdpbmZvJywgJ3dhcm5pbmcnLCAnZXJyb3InLCBvciAnZGlzYWJsZWQnLlxuICogRWFjaCBzdGF0dXMgaGFzIGEgZGVmYXVsdCBsZWZ0IGljb24sIGJ1dCBhIGN1c3RvbSBsZWZ0IGljb24gY2FuIGJlIHByb3ZpZGVkLlxuICogQSByaWdodCBpY29uIGNhbiBhbHNvIGJlIHByb3ZpZGVkLCBkZWZhdWx0aW5nIHRvICdjaGV2cm9uX3JpZ2h0Jy5cbiAqIFRoZSBsZWZ0IGFuZCByaWdodCBpY29ucyBjYW4gYmUgaGlkZGVuIHdpdGggdGhlIGBoaWRlTGVmdEljb25gIGFuZCBgaGlkZVJpZ2h0SWNvbmAgYm9vbGVhbiBpbnB1dHMuXG4gKiBBIGxhYmVsIGlucHV0IGlzIHJlcXVpcmVkLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2xpYi1zdGF0dXMtYnV0dG9uJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5nSWZdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGF0dXMtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vc3RhdHVzLWJ1dHRvbi5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFN0YXR1c0J1dHRvbkNvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSBfc3RhdHVzOiBTdGF0dXMgPSAnaW5mbyc7XG4gICAgcHJpdmF0ZSBfbGVmdEljb24gPSAnJztcbiAgICBwcml2YXRlIF9yaWdodEljb24gPSAnJztcbiAgICBwcml2YXRlIF9oaWRlTGVmdEljb24gPSBmYWxzZTtcbiAgICBwcml2YXRlIF9oaWRlUmlnaHRJY29uID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBfY2xlYXJWYXJpYW50ID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBsYWJlbCE6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXR1cyh2YWx1ZTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2Vycm9yJyB8ICdkaXNhYmxlZCcpIHtcbiAgICAgICAgdGhpcy5fc3RhdHVzID0gdmFsdWUgfHwgJ2luZm8nO1xuICAgIH1cbiAgICBnZXQgc3RhdHVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxlZnRJY29uKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbGVmdEljb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGxlZnRJY29uKCkge1xuICAgICAgICBpZiAodGhpcy5faGlkZUxlZnRJY29uKSByZXR1cm4gJyc7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZWZ0SWNvbiB8fCB0aGlzLmdldERlZmF1bHRMZWZ0SWNvbih0aGlzLl9zdGF0dXMpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHJpZ2h0SWNvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3JpZ2h0SWNvbiA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgcmlnaHRJY29uKCkge1xuICAgICAgICBpZiAodGhpcy5faGlkZVJpZ2h0SWNvbikgcmV0dXJuICcnO1xuICAgICAgICByZXR1cm4gdGhpcy5fcmlnaHRJY29uIHx8ICdjaGV2cm9uX3JpZ2h0JztcbiAgICB9XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICBzZXQgaGlkZUxlZnRJY29uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2hpZGVMZWZ0SWNvbiA9IHZhbHVlO1xuICAgIH1cbiAgICBnZXQgaGlkZUxlZnRJY29uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUxlZnRJY29uO1xuICAgIH1cblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBoaWRlUmlnaHRJY29uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2hpZGVSaWdodEljb24gPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhpZGVSaWdodEljb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlUmlnaHRJY29uO1xuICAgIH1cblxuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICAgIHNldCBjbGVhclZhcmlhbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fY2xlYXJWYXJpYW50ID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBjbGVhclZhcmlhbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGVhclZhcmlhbnQ7XG4gICAgfVxuXG4gICAgLyoqIGhlbHBlciBmb3IgZGVmYXVsdCBsZWZ0IGljb25zICovXG4gICAgcHJpdmF0ZSBnZXREZWZhdWx0TGVmdEljb24oc3RhdHVzOiB0eXBlb2YgdGhpcy5fc3RhdHVzKTogc3RyaW5nIHtcbiAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgICAgICAgIGNhc2UgJ3N1Y2Nlc3MnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnY2hlY2snO1xuICAgICAgICAgICAgY2FzZSAnaW5mbyc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdpbmZvJztcbiAgICAgICAgICAgIGNhc2UgJ3dhcm5pbmcnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnd2FybmluZyc7XG4gICAgICAgICAgICBjYXNlICdlcnJvcic6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdlcnJvcic7XG4gICAgICAgICAgICBjYXNlICdkaXNhYmxlZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdibG9jayc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbbmdDbGFzc109XCJbXG4gICAgICAgIHN0YXR1cyxcbiAgICAgICAgY2xlYXJWYXJpYW50ID8gJ3N0cm9rZWxlc3MgdHJhbnNwYXJlbnQtYmcnIDogJydcbiAgICBdXCJcbj5cbiAgICA8c3BhbiAqbmdJZj1cImxlZnRJY29uXCIgY2xhc3M9XCJpY29uIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57eyBsZWZ0SWNvbiB9fTwvc3Bhbj5cbiAgICB7eyBsYWJlbCB9fVxuICAgIDxzcGFuICpuZ0lmPVwicmlnaHRJY29uXCIgY2xhc3M9XCJpY29uIG1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWRcIj57eyByaWdodEljb24gfX08L3NwYW4+XG48L2J1dHRvbj5cbiJdfQ==
@@ -11,7 +11,9 @@ export * from './lib/ss-search-bar/ss-search-bar.component';
11
11
  export * from './lib/ss-search-bar/models/advanced-search.model';
12
12
  export * from './lib/ss-search-bar/models/search-scope.model';
13
13
  export * from './lib/ss-search-bar/models/search-config.model';
14
+ export * from './lib/snackbar/snackbar.service';
15
+ export * from './lib/snackbar/snackbar.component';
14
16
  export { getUserStatusFromRoles } from './lib/contact-utils';
15
17
  export { ADVANCED_SEARCH_QUALIFIER_MAP, ADVANCED_SEARCH_FIELD_MAP, ADVANCED_SEARCH_OPTIONS, } from './lib/ss-search-bar/constants';
16
18
  export * from './lib/status-button/status-button.component';
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdELE9BQU8sRUFDSCw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLHVCQUF1QixHQUMxQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLGNBQWMsNkNBQTZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNvbXBvbmVudHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9oYmxsLWhlYWRlci9oYmxsLWhlYWRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvaGJsbC1pdGVtLXR5cGUtaWNvbi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hibGwtZm9vdGVyL2hibGwtZm9vdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oZWFkZXItd2l0aC1pbXBlcnNvbmF0aW9uL2hlYWRlci13aXRoLWltcGVyc29uYXRpb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ltcGVyc29uYXRlLW1vZGFsL2ltcGVyc29uYXRlLW1vZGFsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbXBlcnNvbmF0aW9uLWJhbm5lci9pbXBlcnNvbmF0aW9uLWJhbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9zcy1zZWFyY2gtYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcy1zZWFyY2gtYmFyL21vZGVscy9hZHZhbmNlZC1zZWFyY2gubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9tb2RlbHMvc2VhcmNoLXNjb3BlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzLXNlYXJjaC1iYXIvbW9kZWxzL3NlYXJjaC1jb25maWcubW9kZWwnO1xuZXhwb3J0IHsgZ2V0VXNlclN0YXR1c0Zyb21Sb2xlcyB9IGZyb20gJy4vbGliL2NvbnRhY3QtdXRpbHMnO1xuZXhwb3J0IHtcbiAgICBBRFZBTkNFRF9TRUFSQ0hfUVVBTElGSUVSX01BUCxcbiAgICBBRFZBTkNFRF9TRUFSQ0hfRklFTERfTUFQLFxuICAgIEFEVkFOQ0VEX1NFQVJDSF9PUFRJT05TLFxufSBmcm9tICcuL2xpYi9zcy1zZWFyY2gtYmFyL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0dXMtYnV0dG9uL3N0YXR1cy1idXR0b24uY29tcG9uZW50JztcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFFQUFxRSxDQUFDO0FBQ3BGLGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsNkJBQTZCLEVBQzdCLHlCQUF5QixFQUN6Qix1QkFBdUIsR0FDMUIsTUFBTSwrQkFBK0IsQ0FBQztBQUN2QyxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjb21wb25lbnRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGJsbC1oZWFkZXIvaGJsbC1oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2hibGwtaXRlbS10eXBlLWljb24ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9oYmxsLWZvb3Rlci9oYmxsLWZvb3Rlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVhZGVyLXdpdGgtaW1wZXJzb25hdGlvbi9oZWFkZXItd2l0aC1pbXBlcnNvbmF0aW9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbXBlcnNvbmF0ZS1tb2RhbC9pbXBlcnNvbmF0ZS1tb2RhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1wZXJzb25hdGlvbi1iYW5uZXIvaW1wZXJzb25hdGlvbi1iYW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzLXNlYXJjaC1iYXIvc3Mtc2VhcmNoLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9tb2RlbHMvYWR2YW5jZWQtc2VhcmNoLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NzLXNlYXJjaC1iYXIvbW9kZWxzL3NlYXJjaC1zY29wZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcy1zZWFyY2gtYmFyL21vZGVscy9zZWFyY2gtY29uZmlnLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NuYWNrYmFyL3NuYWNrYmFyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc25hY2tiYXIvc25hY2tiYXIuY29tcG9uZW50JztcbmV4cG9ydCB7IGdldFVzZXJTdGF0dXNGcm9tUm9sZXMgfSBmcm9tICcuL2xpYi9jb250YWN0LXV0aWxzJztcbmV4cG9ydCB7XG4gICAgQURWQU5DRURfU0VBUkNIX1FVQUxJRklFUl9NQVAsXG4gICAgQURWQU5DRURfU0VBUkNIX0ZJRUxEX01BUCxcbiAgICBBRFZBTkNFRF9TRUFSQ0hfT1BUSU9OUyxcbn0gZnJvbSAnLi9saWIvc3Mtc2VhcmNoLWJhci9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdHVzLWJ1dHRvbi9zdGF0dXMtYnV0dG9uLmNvbXBvbmVudCc7XG4iXX0=