toast-message-display 18.0.4 → 18.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +902 -59
  2. package/fesm2022/toast-message-display.mjs +16 -15
  3. package/fesm2022/toast-message-display.mjs.map +1 -1
  4. package/package.json +3 -5
  5. package/toast-message-display-18.0.5.tgz +0 -0
  6. package/types/toast-message-display.d.ts +227 -0
  7. package/esm2022/lib/models/horizontal-alignment.enum.mjs +0 -7
  8. package/esm2022/lib/models/index.mjs +0 -7
  9. package/esm2022/lib/models/toast-colors.enum.mjs +0 -10
  10. package/esm2022/lib/models/toast-display-model.mjs +0 -24
  11. package/esm2022/lib/models/toast-message.model.mjs +0 -11
  12. package/esm2022/lib/models/toast-options.model.mjs +0 -17
  13. package/esm2022/lib/models/vertical-alignment.enum.mjs +0 -6
  14. package/esm2022/lib/pipes/safe-html.pipe.mjs +0 -20
  15. package/esm2022/lib/services/toast-message.service.mjs +0 -55
  16. package/esm2022/lib/toast-demo/toast-demo.component.mjs +0 -121
  17. package/esm2022/lib/toast-message-inline/toast-message-inline.component.mjs +0 -65
  18. package/esm2022/lib/toast-message.module.mjs +0 -67
  19. package/esm2022/lib/toast-ui/toast-ui.component.mjs +0 -69
  20. package/esm2022/lib/utils/color-conversion.service.mjs +0 -33
  21. package/esm2022/lib/utils/index.mjs +0 -3
  22. package/esm2022/lib/utils/text-color.service.mjs +0 -93
  23. package/esm2022/public-api.mjs +0 -10
  24. package/esm2022/toast-message-display.mjs +0 -5
  25. package/index.d.ts +0 -5
  26. package/lib/models/horizontal-alignment.enum.d.ts +0 -5
  27. package/lib/models/index.d.ts +0 -6
  28. package/lib/models/toast-colors.enum.d.ts +0 -8
  29. package/lib/models/toast-display-model.d.ts +0 -19
  30. package/lib/models/toast-message.model.d.ts +0 -12
  31. package/lib/models/toast-options.model.d.ts +0 -18
  32. package/lib/models/vertical-alignment.enum.d.ts +0 -4
  33. package/lib/pipes/safe-html.pipe.d.ts +0 -8
  34. package/lib/services/toast-message.service.d.ts +0 -15
  35. package/lib/toast-demo/toast-demo.component.d.ts +0 -37
  36. package/lib/toast-message-inline/toast-message-inline.component.d.ts +0 -22
  37. package/lib/toast-message.module.d.ts +0 -19
  38. package/lib/toast-ui/toast-ui.component.d.ts +0 -19
  39. package/lib/utils/color-conversion.service.d.ts +0 -7
  40. package/lib/utils/index.d.ts +0 -2
  41. package/lib/utils/text-color.service.d.ts +0 -42
  42. package/public-api.d.ts +0 -6
  43. package/toast-message-display-18.0.4.tgz +0 -0
@@ -0,0 +1,227 @@
1
+ import * as i0 from '@angular/core';
2
+ import { PipeTransform, OnInit, EventEmitter } from '@angular/core';
3
+ import * as _angular_platform_browser from '@angular/platform-browser';
4
+ import * as toast_message_display from 'toast-message-display';
5
+ import * as _angular_forms from '@angular/forms';
6
+ import { FormBuilder } from '@angular/forms';
7
+ import * as i8 from '@angular/material/snack-bar';
8
+ import { MatSnackBarVerticalPosition, MatSnackBarRef } from '@angular/material/snack-bar';
9
+ import * as i5 from '@angular/common';
10
+ import * as i7 from '@angular/material/icon';
11
+ import * as i9 from '@angular/material/button';
12
+ import * as i10 from '@angular/material/toolbar';
13
+ import * as i11 from '@angular/material/menu';
14
+ import * as i12 from '@angular/material/radio';
15
+ import * as i13 from '@angular/material/divider';
16
+
17
+ declare class SafeHtmlPipe implements PipeTransform {
18
+ private sanitizer;
19
+ transform(html: string): _angular_platform_browser.SafeHtml;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<SafeHtmlPipe, never>;
21
+ static ɵpipe: i0.ɵɵPipeDeclaration<SafeHtmlPipe, "safeHtml", false>;
22
+ }
23
+
24
+ declare enum ToastColors {
25
+ SUCCESS = "#006B31",// green
26
+ ERROR = "#CC0000",// red
27
+ INFO = "#02559F",// grey
28
+ WARN = "#FFC20E",// orange
29
+ NOTIFY = "#080808",// black
30
+ GENERAL = "#f5f5f5"
31
+ }
32
+
33
+ interface ToastDisplayInterface {
34
+ id?: string;
35
+ message: string;
36
+ action?: string;
37
+ color: ToastColors;
38
+ icon?: string;
39
+ }
40
+ declare class ToastDisplay implements ToastDisplayInterface {
41
+ id?: string | undefined;
42
+ message: string;
43
+ action?: string | undefined;
44
+ color: ToastColors;
45
+ icon?: string | undefined;
46
+ constructor(id?: string | undefined, message?: string, action?: string | undefined, color?: ToastColors, icon?: string | undefined);
47
+ static adapt(item?: any): ToastDisplay;
48
+ static randomNumbers(length: number): string;
49
+ static generateRandom(randomChars: string, length: number): string;
50
+ }
51
+
52
+ declare class ColorConversionService {
53
+ rgbToHex(rgb: number[]): string;
54
+ hexToRgb(hex: string): number[];
55
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColorConversionService, never>;
56
+ static ɵprov: i0.ɵɵInjectableDeclaration<ColorConversionService>;
57
+ }
58
+
59
+ declare class TextColorService {
60
+ private colorConversionService;
61
+ constructor(colorConversionService: ColorConversionService);
62
+ /**
63
+ * Determines the appropriate text color (light or dark) based on the background color.
64
+ *
65
+ * @param bgColor - The background color to use for the calculation.
66
+ * @param lightColor - The light color to use if the background is dark.
67
+ * @param darkColor - The dark color to use if the background is light.
68
+ * @returns The appropriate text color (light or dark) based on the background color.
69
+ */
70
+ textColorForBgColor(bgColor: string, lightColor: string, darkColor: string): string;
71
+ /**
72
+ * Determines whether the first color is darker than the second color.
73
+ *
74
+ * @param color1 - The first color to compare.
75
+ * @param color2 - The second color to compare.
76
+ * @returns The darker of the two colors.
77
+ */
78
+ isColorDarker(color1: string, color2: string): string;
79
+ calculateLuminance(r: number, g: number, b: number): number;
80
+ /**
81
+ * Fixes the provided color string by ensuring it is in a valid hexadecimal format.
82
+ * If the input color is a hexadecimal string, it will be normalized to a 6-digit format.
83
+ * If the input color is not a hexadecimal string, it will be converted to an RGB array.
84
+ *
85
+ * @param color - The color string to be fixed.
86
+ * @returns An array of RGB values, or the normalized hexadecimal color string.
87
+ */
88
+ fixColor(color: string): number[];
89
+ /**
90
+ * Converts the color representation of the provided string into HEX value.
91
+ *
92
+ * @param str - The color string to be standardized - 'whitesmoke'.
93
+ * @returns The standardized color string - #DEDEDE.
94
+ */
95
+ standardize_color(str: string): string;
96
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextColorService, never>;
97
+ static ɵprov: i0.ɵɵInjectableDeclaration<TextColorService>;
98
+ }
99
+
100
+ declare class ToastUIComponent implements OnInit {
101
+ data: ToastDisplay;
102
+ ngVersion: number;
103
+ close: EventEmitter<ToastDisplay>;
104
+ textColorService: TextColorService;
105
+ private snackBar;
106
+ options: ToastDisplay;
107
+ constructor(data: ToastDisplay);
108
+ ngOnInit(): void;
109
+ get color(): toast_message_display.ToastColors;
110
+ get textColor(): string;
111
+ onCloseToast(options?: ToastDisplay): void;
112
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastUIComponent, never>;
113
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastUIComponent, "app-toast-ui", never, { "options": { "alias": "options"; "required": false; }; }, { "close": "close"; }, never, never, false, never>;
114
+ }
115
+
116
+ declare enum HorizontalAlignment {
117
+ LEFT = "left",
118
+ RIGHT = "right",
119
+ CENTER = "center"
120
+ }
121
+
122
+ declare enum VerticalAlignment {
123
+ TOP = "top",
124
+ BOTTOM = "bottom"
125
+ }
126
+
127
+ interface ToastMessageInterface {
128
+ error: string;
129
+ action: string;
130
+ icon: string;
131
+ }
132
+ declare class ToastMessage implements ToastMessageInterface {
133
+ error: string;
134
+ action: string;
135
+ icon: string;
136
+ constructor(error?: string, action?: string, icon?: string);
137
+ static adapt(item?: any): ToastMessageInterface;
138
+ }
139
+
140
+ interface ToastOptionsInterface {
141
+ duration?: number;
142
+ horizontalPosition?: HorizontalAlignment;
143
+ verticalPosition?: MatSnackBarVerticalPosition;
144
+ data?: ToastDisplay;
145
+ }
146
+ declare class ToastOptions implements ToastOptionsInterface {
147
+ duration?: number | undefined;
148
+ horizontalPosition: HorizontalAlignment;
149
+ verticalPosition: VerticalAlignment;
150
+ data?: ToastDisplay | undefined;
151
+ constructor(duration?: number | undefined, horizontalPosition?: HorizontalAlignment, verticalPosition?: VerticalAlignment, data?: ToastDisplay | undefined);
152
+ static adapt(item?: any): ToastOptionsInterface;
153
+ }
154
+
155
+ declare class ToastMessageDisplayService {
156
+ private snackBar;
157
+ private toastQueue;
158
+ private isToastVisible;
159
+ defaultDuration: number;
160
+ snackBarRef: MatSnackBarRef<any> | undefined;
161
+ toastMessage(options?: ToastDisplay, duration?: number, vertical?: VerticalAlignment): void;
162
+ private showNextToast;
163
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastMessageDisplayService, never>;
164
+ static ɵprov: i0.ɵɵInjectableDeclaration<ToastMessageDisplayService>;
165
+ }
166
+
167
+ declare class ToastDemoComponent {
168
+ random: () => number;
169
+ randomNumber: (min: number, max: number) => number;
170
+ fb: FormBuilder;
171
+ toastMessageDisplayService: ToastMessageDisplayService;
172
+ type: string;
173
+ position: _angular_forms.FormControl<string | null>;
174
+ icons: string[];
175
+ toastSamples: ({
176
+ message: string;
177
+ color: ToastColors;
178
+ action: string;
179
+ icon?: undefined;
180
+ } | {
181
+ message: string;
182
+ color: ToastColors;
183
+ icon: string;
184
+ action?: undefined;
185
+ } | {
186
+ message: string;
187
+ color: ToastColors;
188
+ icon: string;
189
+ action: string;
190
+ })[];
191
+ pickToastSample?: ToastDisplay;
192
+ onSelectType(type: string): void;
193
+ onBasic(type: string, icon?: string, action?: string): void;
194
+ presentToast(color: ToastColors, icon?: string, action?: string): void;
195
+ onInline(): void;
196
+ onClosedToast(toast?: ToastDisplay): void;
197
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastDemoComponent, never>;
198
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastDemoComponent, "app-toast-display-demo", never, {}, {}, never, never, false, never>;
199
+ }
200
+
201
+ declare class ToastMessageInlineComponent implements OnInit {
202
+ close: EventEmitter<ToastDisplay>;
203
+ textColorService: TextColorService;
204
+ toastList: ToastDisplay[];
205
+ dismissToasts: any[];
206
+ set toast(value: any);
207
+ get option(): ToastDisplay | null;
208
+ duration: number;
209
+ position: VerticalAlignment;
210
+ get color(): ToastColors | "";
211
+ get textColor(): string;
212
+ ngOnInit(): void;
213
+ onCloseToast(toast?: ToastDisplay): void;
214
+ expireTime(toast: any): void;
215
+ removeToast(toast: any): void;
216
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastMessageInlineComponent, never>;
217
+ static ɵcmp: i0.ɵɵComponentDeclaration<ToastMessageInlineComponent, "app-toast-message-display-inline", never, { "toast": { "alias": "toast"; "required": false; }; "duration": { "alias": "duration"; "required": false; }; "position": { "alias": "position"; "required": false; }; }, { "close": "close"; }, never, never, false, never>;
218
+ }
219
+
220
+ declare class ToastMessageDisplayModule {
221
+ static ɵfac: i0.ɵɵFactoryDeclaration<ToastMessageDisplayModule, never>;
222
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ToastMessageDisplayModule, [typeof SafeHtmlPipe, typeof ToastUIComponent, typeof ToastDemoComponent, typeof ToastMessageInlineComponent], [typeof i5.CommonModule, typeof _angular_forms.ReactiveFormsModule, typeof i7.MatIconModule, typeof i8.MatSnackBarModule, typeof i9.MatButtonModule, typeof i10.MatToolbarModule, typeof i11.MatMenuModule, typeof i12.MatRadioModule, typeof i13.MatDividerModule], [typeof ToastUIComponent, typeof ToastDemoComponent]>;
223
+ static ɵinj: i0.ɵɵInjectorDeclaration<ToastMessageDisplayModule>;
224
+ }
225
+
226
+ export { HorizontalAlignment, ToastColors, ToastDemoComponent, ToastDisplay, ToastMessage, ToastMessageDisplayModule, ToastMessageDisplayService, ToastMessageInlineComponent, ToastOptions, ToastUIComponent, VerticalAlignment };
227
+ export type { ToastDisplayInterface, ToastMessageInterface, ToastOptionsInterface };
@@ -1,7 +0,0 @@
1
- export var HorizontalAlignment;
2
- (function (HorizontalAlignment) {
3
- HorizontalAlignment["LEFT"] = "left";
4
- HorizontalAlignment["RIGHT"] = "right";
5
- HorizontalAlignment["CENTER"] = "center";
6
- })(HorizontalAlignment || (HorizontalAlignment = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9yaXpvbnRhbC1hbGlnbm1lbnQuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RvYXN0LW1lc3NhZ2UtZGlzcGxheS9zcmMvbGliL21vZGVscy9ob3Jpem9udGFsLWFsaWdubWVudC5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isb0NBQWEsQ0FBQTtJQUNiLHNDQUFlLENBQUE7SUFDZix3Q0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSlcsbUJBQW1CLEtBQW5CLG1CQUFtQixRQUk5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEhvcml6b250YWxBbGlnbm1lbnQge1xuICBMRUZUID0gJ2xlZnQnLFxuICBSSUdIVCA9ICdyaWdodCcsXG4gIENFTlRFUiA9ICdjZW50ZXInLFxufVxuIl19
@@ -1,7 +0,0 @@
1
- export * from "./horizontal-alignment.enum";
2
- export * from "./vertical-alignment.enum";
3
- export * from "./toast-colors.enum";
4
- export * from "./toast-display-model";
5
- export * from "./toast-message.model";
6
- export * from "./toast-options.model";
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b2FzdC1tZXNzYWdlLWRpc3BsYXkvc3JjL2xpYi9tb2RlbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMscUJBQXFCLENBQUE7QUFFbkMsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsdUJBQXVCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9ob3Jpem9udGFsLWFsaWdubWVudC5lbnVtXCJcbmV4cG9ydCAqIGZyb20gXCIuL3ZlcnRpY2FsLWFsaWdubWVudC5lbnVtXCJcbmV4cG9ydCAqIGZyb20gXCIuL3RvYXN0LWNvbG9ycy5lbnVtXCJcblxuZXhwb3J0ICogZnJvbSBcIi4vdG9hc3QtZGlzcGxheS1tb2RlbFwiXG5leHBvcnQgKiBmcm9tIFwiLi90b2FzdC1tZXNzYWdlLm1vZGVsXCJcbmV4cG9ydCAqIGZyb20gXCIuL3RvYXN0LW9wdGlvbnMubW9kZWxcIlxuXG4iXX0=
@@ -1,10 +0,0 @@
1
- export var ToastColors;
2
- (function (ToastColors) {
3
- ToastColors["SUCCESS"] = "#006B31";
4
- ToastColors["ERROR"] = "#CC0000";
5
- ToastColors["INFO"] = "#02559F";
6
- ToastColors["WARN"] = "#FFC20E";
7
- ToastColors["NOTIFY"] = "#080808";
8
- ToastColors["GENERAL"] = "#f5f5f5";
9
- })(ToastColors || (ToastColors = {}));
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29sb3JzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b2FzdC1tZXNzYWdlLWRpc3BsYXkvc3JjL2xpYi9tb2RlbHMvdG9hc3QtY29sb3JzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksV0FPWDtBQVBELFdBQVksV0FBVztJQUNyQixrQ0FBbUIsQ0FBQTtJQUNuQixnQ0FBaUIsQ0FBQTtJQUNqQiwrQkFBZ0IsQ0FBQTtJQUNoQiwrQkFBZ0IsQ0FBQTtJQUNoQixpQ0FBa0IsQ0FBQTtJQUNsQixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBUFcsV0FBVyxLQUFYLFdBQVcsUUFPdEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBUb2FzdENvbG9ycyB7XG4gIFNVQ0NFU1MgPSAnIzAwNkIzMScsIC8vIGdyZWVuXG4gIEVSUk9SID0gJyNDQzAwMDAnLCAgIC8vIHJlZFxuICBJTkZPID0gJyMwMjU1OUYnLCAgICAvLyBncmV5XG4gIFdBUk4gPSAnI0ZGQzIwRScsICAgIC8vIG9yYW5nZVxuICBOT1RJRlkgPSAnIzA4MDgwOCcsICAgIC8vIGJsYWNrXG4gIEdFTkVSQUwgPSAnI2Y1ZjVmNScsICAgIC8vIGxpZ2h0XG59XG4iXX0=
@@ -1,24 +0,0 @@
1
- import { ToastColors } from "./toast-colors.enum";
2
- export class ToastDisplay {
3
- constructor(id, message = 'Sample message', action, color = ToastColors.INFO, icon) {
4
- this.id = id;
5
- this.message = message;
6
- this.action = action;
7
- this.color = color;
8
- this.icon = icon;
9
- }
10
- static adapt(item) {
11
- return new ToastDisplay((item?.id) ? item.id : this.randomNumbers(8), item?.message, item?.action, item?.color, item?.icon);
12
- }
13
- static randomNumbers(length) {
14
- return this.generateRandom('0123456789', length);
15
- }
16
- static generateRandom(randomChars, length) {
17
- var result = '';
18
- for (var i = 0; i < length; i++) {
19
- result += randomChars.charAt(Math.floor(Math.random() * randomChars.length));
20
- }
21
- return result;
22
- }
23
- }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtZGlzcGxheS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RvYXN0LW1lc3NhZ2UtZGlzcGxheS9zcmMvbGliL21vZGVscy90b2FzdC1kaXNwbGF5LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQVVsRCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUNTLEVBQVcsRUFDWCxVQUFVLGdCQUFnQixFQUMxQixNQUFlLEVBQ2YsUUFBUSxXQUFXLENBQUMsSUFBSSxFQUN4QixJQUFhO1FBSmIsT0FBRSxHQUFGLEVBQUUsQ0FBUztRQUNYLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFDZixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUN4QixTQUFJLEdBQUosSUFBSSxDQUFTO0lBQ25CLENBQUM7SUFFSixNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFDckIsT0FBTyxJQUFJLFlBQVksQ0FDckIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQzVDLElBQUksRUFBRSxPQUFPLEVBQ2IsSUFBSSxFQUFFLE1BQU0sRUFDWixJQUFJLEVBQUUsS0FBSyxFQUNYLElBQUksRUFBRSxJQUFJLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQWM7UUFDakMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUNsRCxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFtQixFQUFFLE1BQWM7UUFFdkQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFBO1FBQ2YsS0FBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRyxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO1FBQ2hGLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQTtJQUVmLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvYXN0Q29sb3JzIH0gZnJvbSBcIi4vdG9hc3QtY29sb3JzLmVudW1cIjtcblxuZXhwb3J0IGludGVyZmFjZSBUb2FzdERpc3BsYXlJbnRlcmZhY2Uge1xuICBpZD86IHN0cmluZztcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBhY3Rpb24/OiBzdHJpbmc7XG4gIGNvbG9yOiBUb2FzdENvbG9ycztcbiAgaWNvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRvYXN0RGlzcGxheSBpbXBsZW1lbnRzIFRvYXN0RGlzcGxheUludGVyZmFjZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGlkPzogc3RyaW5nLFxuICAgIHB1YmxpYyBtZXNzYWdlID0gJ1NhbXBsZSBtZXNzYWdlJyxcbiAgICBwdWJsaWMgYWN0aW9uPzogc3RyaW5nLFxuICAgIHB1YmxpYyBjb2xvciA9IFRvYXN0Q29sb3JzLklORk8sXG4gICAgcHVibGljIGljb24/OiBzdHJpbmcsXG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSkge1xuICAgIHJldHVybiBuZXcgVG9hc3REaXNwbGF5KFxuICAgICAgKGl0ZW0/LmlkKSA/IGl0ZW0uaWQgOiB0aGlzLnJhbmRvbU51bWJlcnMoOCksXG4gICAgICBpdGVtPy5tZXNzYWdlLFxuICAgICAgaXRlbT8uYWN0aW9uLFxuICAgICAgaXRlbT8uY29sb3IsXG4gICAgICBpdGVtPy5pY29uLFxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgcmFuZG9tTnVtYmVycyhsZW5ndGg6IG51bWJlcikge1xuICAgIHJldHVybiB0aGlzLmdlbmVyYXRlUmFuZG9tKCcwMTIzNDU2Nzg5JywgbGVuZ3RoKVxuICB9XG5cbiAgc3RhdGljIGdlbmVyYXRlUmFuZG9tKHJhbmRvbUNoYXJzOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKSB7XG5cbiAgICB2YXIgcmVzdWx0ID0gJydcbiAgICBmb3IgKCB2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKyApIHtcbiAgICAgICAgcmVzdWx0ICs9IHJhbmRvbUNoYXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiByYW5kb21DaGFycy5sZW5ndGgpKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0XG5cbiAgfVxuXG59XG4iXX0=
@@ -1,11 +0,0 @@
1
- export class ToastMessage {
2
- constructor(error = '', action = '', icon = 'error') {
3
- this.error = error;
4
- this.action = action;
5
- this.icon = icon;
6
- }
7
- static adapt(item) {
8
- return new ToastMessage(item?.error, item?.action, item?.icon);
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtbWVzc2FnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RvYXN0LW1lc3NhZ2UtZGlzcGxheS9zcmMvbGliL21vZGVscy90b2FzdC1tZXNzYWdlLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQ1MsUUFBUSxFQUFFLEVBQ1YsU0FBUyxFQUFFLEVBQ1gsT0FBTyxPQUFPO1FBRmQsVUFBSyxHQUFMLEtBQUssQ0FBSztRQUNWLFdBQU0sR0FBTixNQUFNLENBQUs7UUFDWCxTQUFJLEdBQUosSUFBSSxDQUFVO0lBQ3BCLENBQUM7SUFFTCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQVU7UUFDcEIsT0FBTyxJQUFJLFlBQVksQ0FDckIsSUFBSSxFQUFFLEtBQUssRUFDWCxJQUFJLEVBQUUsTUFBTSxFQUNaLElBQUksRUFBRSxJQUFJLENBQ1gsQ0FBQTtJQUVILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVG9hc3RNZXNzYWdlSW50ZXJmYWNlIHtcbiAgZXJyb3I6IHN0cmluZztcbiAgYWN0aW9uOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFRvYXN0TWVzc2FnZSBpbXBsZW1lbnRzIFRvYXN0TWVzc2FnZUludGVyZmFjZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBlcnJvciA9ICcnLFxuICAgIHB1YmxpYyBhY3Rpb24gPSAnJyxcbiAgICBwdWJsaWMgaWNvbiA9ICdlcnJvcicsXG4gICkge31cblxuIHN0YXRpYyBhZGFwdChpdGVtPzogYW55KTogVG9hc3RNZXNzYWdlSW50ZXJmYWNlIHtcbiAgICByZXR1cm4gbmV3IFRvYXN0TWVzc2FnZShcbiAgICAgIGl0ZW0/LmVycm9yLFxuICAgICAgaXRlbT8uYWN0aW9uLFxuICAgICAgaXRlbT8uaWNvbixcbiAgICApXG5cbiAgfVxufVxuIl19
@@ -1,17 +0,0 @@
1
- import { HorizontalAlignment } from "./horizontal-alignment.enum";
2
- import { ToastDisplay } from "./toast-display-model";
3
- import { VerticalAlignment } from "./vertical-alignment.enum";
4
- export class ToastOptions {
5
- constructor(duration, horizontalPosition = HorizontalAlignment.CENTER, verticalPosition = VerticalAlignment.TOP, data) {
6
- this.duration = duration;
7
- this.horizontalPosition = horizontalPosition;
8
- this.verticalPosition = verticalPosition;
9
- this.data = data;
10
- }
11
- static adapt(item) {
12
- if (item?.duration)
13
- item.duration = item.duration * 1000;
14
- return new ToastOptions(item?.duration, item?.horizontalPosition, item?.verticalPosition, item?.data ? ToastDisplay.adapt(item.data) : ToastDisplay.adapt());
15
- }
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Qtb3B0aW9ucy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RvYXN0LW1lc3NhZ2UtZGlzcGxheS9zcmMvbGliL21vZGVscy90b2FzdC1vcHRpb25zLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQVM5RCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUNTLFFBQWlCLEVBQ2pCLHFCQUFxQixtQkFBbUIsQ0FBQyxNQUFNLEVBQy9DLG1CQUFtQixpQkFBaUIsQ0FBQyxHQUFHLEVBQ3hDLElBQW1CO1FBSG5CLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUE2QjtRQUMvQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBQ3hDLFNBQUksR0FBSixJQUFJLENBQWU7SUFDekIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBVTtRQUVyQixJQUFHLElBQUksRUFBRSxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQTtRQUV2RCxPQUFPLElBQUksWUFBWSxDQUNyQixJQUFJLEVBQUUsUUFBUSxFQUNkLElBQUksRUFBRSxrQkFBa0IsRUFDeEIsSUFBSSxFQUFFLGdCQUFnQixFQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUNsRSxDQUFBO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWF0U25hY2tCYXJWZXJ0aWNhbFBvc2l0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhclwiO1xuaW1wb3J0IHsgSG9yaXpvbnRhbEFsaWdubWVudCB9IGZyb20gXCIuL2hvcml6b250YWwtYWxpZ25tZW50LmVudW1cIjtcbmltcG9ydCB7IFRvYXN0RGlzcGxheSB9IGZyb20gXCIuL3RvYXN0LWRpc3BsYXktbW9kZWxcIjtcbmltcG9ydCB7IFZlcnRpY2FsQWxpZ25tZW50IH0gZnJvbSBcIi4vdmVydGljYWwtYWxpZ25tZW50LmVudW1cIjtcblxuZXhwb3J0IGludGVyZmFjZSBUb2FzdE9wdGlvbnNJbnRlcmZhY2Uge1xuICBkdXJhdGlvbj86IG51bWJlclxuICBob3Jpem9udGFsUG9zaXRpb24/OiBIb3Jpem9udGFsQWxpZ25tZW50XG4gIHZlcnRpY2FsUG9zaXRpb24/OiBNYXRTbmFja0JhclZlcnRpY2FsUG9zaXRpb25cbiAgZGF0YT86IFRvYXN0RGlzcGxheVxufVxuXG5leHBvcnQgY2xhc3MgVG9hc3RPcHRpb25zIGltcGxlbWVudHMgVG9hc3RPcHRpb25zSW50ZXJmYWNlIHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZHVyYXRpb24/OiBudW1iZXIsXG4gICAgcHVibGljIGhvcml6b250YWxQb3NpdGlvbiA9IEhvcml6b250YWxBbGlnbm1lbnQuQ0VOVEVSLFxuICAgIHB1YmxpYyB2ZXJ0aWNhbFBvc2l0aW9uID0gVmVydGljYWxBbGlnbm1lbnQuVE9QLFxuICAgIHB1YmxpYyBkYXRhPzogVG9hc3REaXNwbGF5XG4gICkge31cblxuICBzdGF0aWMgYWRhcHQoaXRlbT86IGFueSk6IFRvYXN0T3B0aW9uc0ludGVyZmFjZSB7XG5cbiAgICBpZihpdGVtPy5kdXJhdGlvbikgaXRlbS5kdXJhdGlvbiA9IGl0ZW0uZHVyYXRpb24gKiAxMDAwXG5cbiAgICByZXR1cm4gbmV3IFRvYXN0T3B0aW9ucyhcbiAgICAgIGl0ZW0/LmR1cmF0aW9uLFxuICAgICAgaXRlbT8uaG9yaXpvbnRhbFBvc2l0aW9uLFxuICAgICAgaXRlbT8udmVydGljYWxQb3NpdGlvbixcbiAgICAgIGl0ZW0/LmRhdGEgPyBUb2FzdERpc3BsYXkuYWRhcHQoaXRlbS5kYXRhKSA6IFRvYXN0RGlzcGxheS5hZGFwdCgpXG4gICAgKVxuICB9XG5cbn1cbiJdfQ==
@@ -1,6 +0,0 @@
1
- export var VerticalAlignment;
2
- (function (VerticalAlignment) {
3
- VerticalAlignment["TOP"] = "top";
4
- VerticalAlignment["BOTTOM"] = "bottom";
5
- })(VerticalAlignment || (VerticalAlignment = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVydGljYWwtYWxpZ25tZW50LmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b2FzdC1tZXNzYWdlLWRpc3BsYXkvc3JjL2xpYi9tb2RlbHMvdmVydGljYWwtYWxpZ25tZW50LmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksaUJBR1g7QUFIRCxXQUFZLGlCQUFpQjtJQUMzQixnQ0FBVyxDQUFBO0lBQ1gsc0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHNUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBWZXJ0aWNhbEFsaWdubWVudCB7XG4gIFRPUCA9ICd0b3AnLFxuICBCT1RUT00gPSAnYm90dG9tJyxcbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- import { Pipe, inject } from '@angular/core';
2
- import { DomSanitizer } from "@angular/platform-browser";
3
- import * as i0 from "@angular/core";
4
- export class SafeHtmlPipe {
5
- constructor() {
6
- this.sanitizer = inject(DomSanitizer);
7
- }
8
- transform(html) {
9
- return this.sanitizer.bypassSecurityTrustHtml(html);
10
- }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
12
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" }); }
13
- }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SafeHtmlPipe, decorators: [{
15
- type: Pipe,
16
- args: [{
17
- name: 'safeHtml',
18
- }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZS1odG1sLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b2FzdC1tZXNzYWdlLWRpc3BsYXkvc3JjL2xpYi9waXBlcy9zYWZlLWh0bWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOztBQUt2RCxNQUFNLE9BQU8sWUFBWTtJQUh6QjtRQUtVLGNBQVMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7S0FNekM7SUFKQyxTQUFTLENBQUMsSUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDckQsQ0FBQzsrR0FOVSxZQUFZOzZHQUFaLFlBQVk7OzRGQUFaLFlBQVk7a0JBSHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplcn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcblxuQFBpcGUoe1xuICBuYW1lOiAnc2FmZUh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBTYWZlSHRtbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBwcml2YXRlIHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpXG5cbiAgdHJhbnNmb3JtKGh0bWw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChodG1sKVxuICB9XG5cbn1cbiJdfQ==
@@ -1,55 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { MatSnackBar } from '@angular/material/snack-bar';
3
- import { ToastUIComponent } from '../toast-ui/toast-ui.component';
4
- import { ToastOptions } from '../models/toast-options.model';
5
- import { ToastDisplay } from '../models/toast-display-model';
6
- import { take } from 'rxjs/operators';
7
- import * as i0 from "@angular/core";
8
- export class ToastMessageDisplayService {
9
- constructor() {
10
- this.snackBar = inject(MatSnackBar);
11
- this.toastQueue = [];
12
- this.isToastVisible = false;
13
- this.defaultDuration = 3;
14
- }
15
- toastMessage(options = ToastDisplay.adapt(), duration, vertical) {
16
- this.toastQueue.push({ options, duration, vertical });
17
- this.showNextToast();
18
- }
19
- showNextToast() {
20
- if (this.isToastVisible || this.toastQueue.length === 0)
21
- return;
22
- const { options, duration, vertical } = this.toastQueue.shift();
23
- const vertPosition = (vertical) ? vertical : 'top';
24
- const durationDismiss = (!options.action) ? this.defaultDuration : duration;
25
- const displayOptions = ToastOptions.adapt({
26
- duration: durationDismiss,
27
- horizontalPosition: 'center',
28
- verticalPosition: vertPosition,
29
- data: options,
30
- });
31
- this.isToastVisible = true;
32
- this.snackBarRef = this.snackBar.openFromComponent(ToastUIComponent, displayOptions);
33
- if (this.snackBarRef) {
34
- this.snackBarRef
35
- .afterDismissed()
36
- .pipe(take(1))
37
- .subscribe(() => {
38
- this.isToastVisible = false;
39
- this.showNextToast();
40
- });
41
- }
42
- else {
43
- console.error('Snackbar reference is undefined. Unable to subscribe to dismissal event.');
44
- }
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
47
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, providedIn: 'root' }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastMessageDisplayService, decorators: [{
50
- type: Injectable,
51
- args: [{
52
- providedIn: 'root'
53
- }]
54
- }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtbWVzc2FnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9hc3QtbWVzc2FnZS1kaXNwbGF5L3NyYy9saWIvc2VydmljZXMvdG9hc3QtbWVzc2FnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQStDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBS3RDLE1BQU0sT0FBTywwQkFBMEI7SUFIdkM7UUFLVSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9CLGVBQVUsR0FBaUYsRUFBRSxDQUFDO1FBQzlGLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRS9CLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO0tBMENyQjtJQXRDQyxZQUFZLENBQUMsT0FBTyxHQUFHLFlBQVksQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFpQixFQUFFLFFBQTRCO1FBQzFGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUVuQixJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU07UUFFL0QsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUcsQ0FBQTtRQUVoRSxNQUFNLFlBQVksR0FBZ0MsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7UUFFL0UsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFBO1FBRTNFLE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDeEMsUUFBUSxFQUFFLGVBQWU7WUFDekIsa0JBQWtCLEVBQUUsUUFBUTtZQUM1QixnQkFBZ0IsRUFBRSxZQUFZO1lBQzlCLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBRXJGLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxXQUFXO2lCQUNiLGNBQWMsRUFBRTtpQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDYixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxLQUFLLENBQUMsMEVBQTBFLENBQUMsQ0FBQztRQUM1RixDQUFDO0lBRUgsQ0FBQzsrR0FoRFUsMEJBQTBCO21IQUExQiwwQkFBMEIsY0FGekIsTUFBTTs7NEZBRVAsMEJBQTBCO2tCQUh0QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIsIE1hdFNuYWNrQmFyUmVmLCBNYXRTbmFja0JhclZlcnRpY2FsUG9zaXRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgVG9hc3RVSUNvbXBvbmVudCB9IGZyb20gJy4uL3RvYXN0LXVpL3RvYXN0LXVpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb2FzdE9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMvdG9hc3Qtb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQgeyBWZXJ0aWNhbEFsaWdubWVudCB9IGZyb20gJy4uL21vZGVscy92ZXJ0aWNhbC1hbGlnbm1lbnQuZW51bSc7XG5pbXBvcnQgeyBUb2FzdERpc3BsYXkgfSBmcm9tICcuLi9tb2RlbHMvdG9hc3QtZGlzcGxheS1tb2RlbCc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUb2FzdE1lc3NhZ2VEaXNwbGF5U2VydmljZSB7XG5cbiAgcHJpdmF0ZSBzbmFja0JhciA9IGluamVjdChNYXRTbmFja0Jhcik7XG5cbiAgcHJpdmF0ZSB0b2FzdFF1ZXVlOiB7IG9wdGlvbnM6IFRvYXN0RGlzcGxheSwgZHVyYXRpb24/OiBudW1iZXIsIHZlcnRpY2FsPzogVmVydGljYWxBbGlnbm1lbnQgfVtdID0gW107XG4gIHByaXZhdGUgaXNUb2FzdFZpc2libGUgPSBmYWxzZTtcblxuICBkZWZhdWx0RHVyYXRpb24gPSAzO1xuXG4gIHNuYWNrQmFyUmVmOiBNYXRTbmFja0JhclJlZjxhbnk+IHwgdW5kZWZpbmVkO1xuXG4gIHRvYXN0TWVzc2FnZShvcHRpb25zID0gVG9hc3REaXNwbGF5LmFkYXB0KCksIGR1cmF0aW9uPzogbnVtYmVyLCB2ZXJ0aWNhbD86IFZlcnRpY2FsQWxpZ25tZW50KSB7XG4gICAgdGhpcy50b2FzdFF1ZXVlLnB1c2goeyBvcHRpb25zLCBkdXJhdGlvbiwgdmVydGljYWwgfSk7XG4gICAgdGhpcy5zaG93TmV4dFRvYXN0KCk7XG4gIH1cblxuICBwcml2YXRlIHNob3dOZXh0VG9hc3QoKSB7XG5cbiAgICBpZiAodGhpcy5pc1RvYXN0VmlzaWJsZSB8fCB0aGlzLnRvYXN0UXVldWUubGVuZ3RoID09PSAwKSByZXR1cm5cblxuICAgIGNvbnN0IHsgb3B0aW9ucywgZHVyYXRpb24sIHZlcnRpY2FsIH0gPSB0aGlzLnRvYXN0UXVldWUuc2hpZnQoKSFcblxuICAgIGNvbnN0IHZlcnRQb3NpdGlvbjogTWF0U25hY2tCYXJWZXJ0aWNhbFBvc2l0aW9uID0gKHZlcnRpY2FsKSA/IHZlcnRpY2FsIDogJ3RvcCdcblxuICAgIGNvbnN0IGR1cmF0aW9uRGlzbWlzcyA9ICghb3B0aW9ucy5hY3Rpb24pID8gdGhpcy5kZWZhdWx0RHVyYXRpb24gOiBkdXJhdGlvblxuXG4gICAgY29uc3QgZGlzcGxheU9wdGlvbnMgPSBUb2FzdE9wdGlvbnMuYWRhcHQoe1xuICAgICAgZHVyYXRpb246IGR1cmF0aW9uRGlzbWlzcyxcbiAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiB2ZXJ0UG9zaXRpb24sXG4gICAgICBkYXRhOiBvcHRpb25zLFxuICAgIH0pXG5cbiAgICB0aGlzLmlzVG9hc3RWaXNpYmxlID0gdHJ1ZTtcbiAgICB0aGlzLnNuYWNrQmFyUmVmID0gdGhpcy5zbmFja0Jhci5vcGVuRnJvbUNvbXBvbmVudChUb2FzdFVJQ29tcG9uZW50LCBkaXNwbGF5T3B0aW9ucyk7XG5cbiAgICBpZiAodGhpcy5zbmFja0JhclJlZikge1xuICAgICAgdGhpcy5zbmFja0JhclJlZlxuICAgICAgICAuYWZ0ZXJEaXNtaXNzZWQoKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmlzVG9hc3RWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zaG93TmV4dFRvYXN0KCk7XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdTbmFja2JhciByZWZlcmVuY2UgaXMgdW5kZWZpbmVkLiBVbmFibGUgdG8gc3Vic2NyaWJlIHRvIGRpc21pc3NhbCBldmVudC4nKTtcbiAgICB9XG5cbiAgfVxufVxuIl19
@@ -1,121 +0,0 @@
1
- import { Component, inject } from '@angular/core';
2
- import { ToastColors, ToastDisplay, VerticalAlignment } from '../models';
3
- import { FormBuilder } from '@angular/forms';
4
- import { ToastMessageDisplayService } from '../services/toast-message.service';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@angular/material/icon";
9
- import * as i4 from "@angular/material/button";
10
- import * as i5 from "@angular/material/toolbar";
11
- import * as i6 from "@angular/material/menu";
12
- import * as i7 from "@angular/material/radio";
13
- import * as i8 from "@angular/material/divider";
14
- import * as i9 from "../toast-message-inline/toast-message-inline.component";
15
- export class ToastDemoComponent {
16
- constructor() {
17
- this.random = () => {
18
- const typedArray = new Uint8Array(1);
19
- const randomValue = crypto.getRandomValues(typedArray)[0];
20
- const randomFloat = randomValue / Math.pow(2, 8);
21
- return randomFloat;
22
- };
23
- this.randomNumber = (min, max) => {
24
- return Math.floor(this.random() * max) + min;
25
- };
26
- this.fb = inject(FormBuilder);
27
- this.toastMessageDisplayService = inject(ToastMessageDisplayService);
28
- this.type = 'Basic';
29
- this.position = this.fb.control('top');
30
- this.icons = [
31
- 'favorite_border',
32
- 'dashboard',
33
- 'event',
34
- 'paid',
35
- 'notifications',
36
- 'movie_filter',
37
- ];
38
- this.toastSamples = [
39
- {
40
- message: `This is a simple toast message. This is a <span style="font-size: 22px">simple toast message</span>. This is a simple toast message. This is a simple toast message`,
41
- color: ToastColors.ERROR,
42
- action: "Ok"
43
- },
44
- {
45
- message: 'Sample message',
46
- color: ToastColors.INFO,
47
- icon: this.icons[0]
48
- },
49
- {
50
- message: 'Sample message',
51
- color: ToastColors.WARN,
52
- icon: this.icons[1]
53
- },
54
- {
55
- message: `This is a simple toast message. This is a <span style="font-size: 22px">simple toast message</span>. This is a simple toast message. This is a simple toast message`,
56
- color: ToastColors.NOTIFY,
57
- icon: this.icons[2],
58
- action: "Dismiss"
59
- },
60
- {
61
- message: 'Sample message',
62
- color: ToastColors.GENERAL,
63
- action: "Dismiss"
64
- },
65
- {
66
- message: `This is a simple toast message. This is a <span style="font-size: 22px">simple toast message</span>. This is a simple toast message. This is a simple toast message`,
67
- color: ToastColors.SUCCESS,
68
- action: "-"
69
- },
70
- ];
71
- }
72
- onSelectType(type) {
73
- this.type = type;
74
- }
75
- onBasic(type, icon, action) {
76
- switch (type) {
77
- case 'ERROR':
78
- this.presentToast(ToastColors.ERROR, icon, action);
79
- break;
80
- case 'INFO':
81
- this.presentToast(ToastColors.INFO, icon, action);
82
- break;
83
- case 'WARN':
84
- this.presentToast(ToastColors.WARN, icon, action);
85
- break;
86
- case 'NOTIFY':
87
- this.presentToast(ToastColors.NOTIFY, icon, action);
88
- break;
89
- case 'GENERAL':
90
- this.presentToast(ToastColors.GENERAL, icon, action);
91
- break;
92
- default:
93
- this.presentToast(ToastColors.SUCCESS, icon, action);
94
- break;
95
- }
96
- }
97
- presentToast(color, icon, action) {
98
- const options = ToastDisplay.adapt({
99
- message: `This is a simple toast message. <span style="font-size: 22px">simple toast message</span>. This is a simple toast message. This is a simple toast message`,
100
- color,
101
- icon,
102
- action
103
- });
104
- const toastPosition = (this.position.value === 'top') ? VerticalAlignment.TOP : VerticalAlignment.BOTTOM;
105
- this.toastMessageDisplayService.toastMessage(options, -1, toastPosition);
106
- }
107
- onInline() {
108
- const pick = this.randomNumber(0, this.toastSamples.length - 1);
109
- this.pickToastSample = this.toastSamples[pick];
110
- }
111
- onClosedToast(toast) {
112
- console.log(toast);
113
- }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
115
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ToastDemoComponent, selector: "app-toast-display-demo", ngImport: i0, template: "<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n", styles: [".bold{font-size:22px;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i5.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i6.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i6.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i6.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i7.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i7.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i8.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i9.ToastMessageInlineComponent, selector: "app-toast-message-display-inline", inputs: ["toast", "duration", "position"], outputs: ["close"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }] }); }
116
- }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ToastDemoComponent, decorators: [{
118
- type: Component,
119
- args: [{ selector: 'app-toast-display-demo', template: "<mat-toolbar style=\"display: flex;\">\n <div>Toast Message Demo</div>\n <div style=\"flex:1; text-align: end;\">\n <button\n mat-stroked-button\n [matMenuTriggerFor]=\"menu\"\n matIconPrefix\n >\n {{ type | titlecase }}\n <mat-icon>layers</mat-icon>\n </button>\n </div>\n</mat-toolbar>\n\n<mat-menu #menu=\"matMenu\">\n <button\n mat-menu-item\n (click)=\"onSelectType('basic')\"\n >\n Basic\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('icon')\"\n >\n Icon\n </button>\n <button\n mat-menu-item\n (click)=\"onSelectType('action')\"\n >\n Action\n </button>\n</mat-menu>\n\n<div style=\"margin: 1rem;\">\n <span [ngSwitch]=\"type\">\n <div *ngSwitchCase=\"'icon'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border')\"\n >\n Icon - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard')\"\n >\n Icon - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event')\"\n >\n Icon - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid')\"\n >\n Icon - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'notifications')\"\n >\n Icon - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'movie_filter')\"\n >\n Icon - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchCase=\"'action'\">\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Toast with Icon and Action</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS', 'favorite_border', 'Dismiss')\"\n >\n Action - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR', 'dashboard', 'Dismiss')\"\n >\n Action - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO', 'event', 'Dismiss')\"\n >\n Action - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN', 'paid', 'Dismiss')\"\n >\n Action - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY', 'notifications', 'Dismiss')\"\n >\n Action - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL', 'movie_filter', 'Dismiss')\"\n >\n Action - GENERAL\n </button>\n </div>\n </div>\n </div>\n <div *ngSwitchDefault>\n\n <div style=\"display: flex; gap: 1rem; flex-direction: column;\">\n <h3 style=\"flex:1; margin-bottom: 0;\">Basic Toast</h3>\n <div style=\"display: flex; gap: .5rem;\">\n <button\n mat-stroked-button\n (click)=\"onBasic('SUCCESS')\"\n >\n Basic - SUCCESS\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('ERROR')\"\n >\n Basic - ERROR\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('INFO')\"\n >\n Basic - INFO\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('WARN')\"\n >\n Basic - WARN\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('NOTIFY')\"\n >\n Basic - NOTIFY\n </button>\n <button\n mat-stroked-button\n (click)=\"onBasic('GENERAL')\"\n >\n Basic - GENERAL\n </button>\n </div>\n </div>\n\n </div>\n </span>\n <div style=\"display: flex; margin-top: 1rem;\">\n <mat-radio-group [formControl]=\"position\" style=\"display: flex; gap: 2rem\">\n <mat-radio-button value=\"top\">Top Position</mat-radio-button>\n <mat-radio-button value=\"bottom\">Bottom Position</mat-radio-button>\n </mat-radio-group>\n </div>\n</div>\n\n<div style=\"margin-top: 1rem; margin-bottom: 1rem;\">\n <mat-divider></mat-divider>\n</div>\n\n<div style=\"margin: 1rem;\">\n <button mat-stroked-button (click)=\"onInline()\" style=\"margin-bottom: 2rem;\">\n Add Inline Toast Message\n </button>\n <app-toast-message-display-inline\n [toast]=\"pickToastSample\"\n [duration]=\"5\"\n (close)=\"onClosedToast($event)\"\n ></app-toast-message-display-inline>\n</div>\n", styles: [".bold{font-size:22px;font-weight:700}\n"] }]
120
- }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtZGVtby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90b2FzdC1tZXNzYWdlLWRpc3BsYXkvc3JjL2xpYi90b2FzdC1kZW1vL3RvYXN0LWRlbW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdG9hc3QtbWVzc2FnZS1kaXNwbGF5L3NyYy9saWIvdG9hc3QtZGVtby90b2FzdC1kZW1vLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7Ozs7QUFPL0UsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9FLFdBQU0sR0FBRyxHQUFHLEVBQUU7WUFDWixNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNwQyxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ3pELE1BQU0sV0FBVyxHQUFHLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUNoRCxPQUFPLFdBQVcsQ0FBQTtRQUNwQixDQUFDLENBQUE7UUFFRCxpQkFBWSxHQUFHLENBQUMsR0FBVyxFQUFFLEdBQVcsRUFBRSxFQUFFO1lBQzFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFBO1FBQzlDLENBQUMsQ0FBQTtRQUVELE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDeEIsK0JBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUE7UUFFL0QsU0FBSSxHQUFHLE9BQU8sQ0FBQTtRQUVkLGFBQVEsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVqQyxVQUFLLEdBQUc7WUFDTixpQkFBaUI7WUFDakIsV0FBVztZQUNYLE9BQU87WUFDUCxNQUFNO1lBQ04sZUFBZTtZQUNmLGNBQWM7U0FDZixDQUFBO1FBRUQsaUJBQVksR0FBRztZQUNiO2dCQUNFLE9BQU8sRUFBRSxxS0FBcUs7Z0JBQzlLLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSztnQkFDeEIsTUFBTSxFQUFFLElBQUk7YUFDYjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLEtBQUssRUFBRSxXQUFXLENBQUMsSUFBSTtnQkFDdkIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ3BCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxJQUFJO2dCQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDcEI7WUFDRDtnQkFDRSxPQUFPLEVBQUUscUtBQXFLO2dCQUM5SyxLQUFLLEVBQUUsV0FBVyxDQUFDLE1BQU07Z0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDbkIsTUFBTSxFQUFFLFNBQVM7YUFDbEI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU87Z0JBQzFCLE1BQU0sRUFBRSxTQUFTO2FBQ2xCO1lBQ0Q7Z0JBQ0ksT0FBTyxFQUFFLHFLQUFxSztnQkFDOUssS0FBSyxFQUFFLFdBQVcsQ0FBQyxPQUFPO2dCQUMxQixNQUFNLEVBQUUsR0FBRzthQUNaO1NBQ0YsQ0FBQTtLQXFESjtJQWpEQyxZQUFZLENBQUMsSUFBWTtRQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNsQixDQUFDO0lBRUQsT0FBTyxDQUFDLElBQVksRUFBRSxJQUFhLEVBQUUsTUFBZTtRQUNsRCxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBQ3BELE1BQU07WUFDTixLQUFLLE1BQU07Z0JBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDbkQsTUFBTTtZQUNOLEtBQUssTUFBTTtnQkFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFBO2dCQUNuRCxNQUFNO1lBQ04sS0FBSyxRQUFRO2dCQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBQ3JELE1BQU07WUFDTixLQUFLLFNBQVM7Z0JBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQTtnQkFDdEQsTUFBTTtZQUNOO2dCQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUE7Z0JBQ3RELE1BQU07UUFDUixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFrQixFQUFFLElBQWEsRUFBRSxNQUFlO1FBRTNELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDL0IsT0FBTyxFQUFFLDJKQUEySjtZQUNwSyxLQUFLO1lBQ0wsSUFBSTtZQUNKLE1BQU07U0FDVCxDQUFDLENBQUE7UUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQTtRQUN4RyxJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQTtJQUM1RSxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNoRCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQW9CO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDcEIsQ0FBQzsrR0FoSFUsa0JBQWtCO21HQUFsQixrQkFBa0IsOERDWC9CLDBvTkErTEE7OzRGRHBMYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvYXN0Q29sb3JzLCBUb2FzdERpc3BsYXksIFZlcnRpY2FsQWxpZ25tZW50IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBUb2FzdE1lc3NhZ2VEaXNwbGF5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RvYXN0LW1lc3NhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLXRvYXN0LWRpc3BsYXktZGVtbycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LWRlbW8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RvYXN0LWRlbW8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUb2FzdERlbW9Db21wb25lbnQge1xuXG4gIHJhbmRvbSA9ICgpID0+IHtcbiAgICBjb25zdCB0eXBlZEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMSlcbiAgICBjb25zdCByYW5kb21WYWx1ZSA9IGNyeXB0by5nZXRSYW5kb21WYWx1ZXModHlwZWRBcnJheSlbMF1cbiAgICBjb25zdCByYW5kb21GbG9hdCA9IHJhbmRvbVZhbHVlIC8gTWF0aC5wb3coMiwgOClcbiAgICByZXR1cm4gcmFuZG9tRmxvYXRcbiAgfVxuXG4gIHJhbmRvbU51bWJlciA9IChtaW46IG51bWJlciwgbWF4OiBudW1iZXIpID0+IHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLnJhbmRvbSgpICogbWF4KSArIG1pblxuICB9XG5cbiAgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpXG4gIHRvYXN0TWVzc2FnZURpc3BsYXlTZXJ2aWNlID0gaW5qZWN0KFRvYXN0TWVzc2FnZURpc3BsYXlTZXJ2aWNlKVxuXG4gIHR5cGUgPSAnQmFzaWMnXG5cbiAgcG9zaXRpb24gPSB0aGlzLmZiLmNvbnRyb2woJ3RvcCcpXG5cbiAgaWNvbnMgPSBbXG4gICAgJ2Zhdm9yaXRlX2JvcmRlcicsXG4gICAgJ2Rhc2hib2FyZCcsXG4gICAgJ2V2ZW50JyxcbiAgICAncGFpZCcsXG4gICAgJ25vdGlmaWNhdGlvbnMnLFxuICAgICdtb3ZpZV9maWx0ZXInLFxuICBdXG5cbiAgdG9hc3RTYW1wbGVzID0gW1xuICAgIHtcbiAgICAgIG1lc3NhZ2U6IGBUaGlzIGlzIGEgc2ltcGxlIHRvYXN0IG1lc3NhZ2UuIFRoaXMgaXMgYSA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweFwiPnNpbXBsZSB0b2FzdCBtZXNzYWdlPC9zcGFuPi4gVGhpcyBpcyBhIHNpbXBsZSB0b2FzdCBtZXNzYWdlLiBUaGlzIGlzIGEgc2ltcGxlIHRvYXN0IG1lc3NhZ2VgLFxuICAgICAgY29sb3I6IFRvYXN0Q29sb3JzLkVSUk9SLFxuICAgICAgYWN0aW9uOiBcIk9rXCJcbiAgICB9LFxuICAgIHtcbiAgICAgIG1lc3NhZ2U6ICdTYW1wbGUgbWVzc2FnZScsXG4gICAgICBjb2xvcjogVG9hc3RDb2xvcnMuSU5GTyxcbiAgICAgIGljb246IHRoaXMuaWNvbnNbMF1cbiAgICB9LFxuICAgIHtcbiAgICAgIG1lc3NhZ2U6ICdTYW1wbGUgbWVzc2FnZScsXG4gICAgICBjb2xvcjogVG9hc3RDb2xvcnMuV0FSTixcbiAgICAgIGljb246IHRoaXMuaWNvbnNbMV1cbiAgICB9LFxuICAgIHtcbiAgICAgIG1lc3NhZ2U6IGBUaGlzIGlzIGEgc2ltcGxlIHRvYXN0IG1lc3NhZ2UuIFRoaXMgaXMgYSA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweFwiPnNpbXBsZSB0b2FzdCBtZXNzYWdlPC9zcGFuPi4gVGhpcyBpcyBhIHNpbXBsZSB0b2FzdCBtZXNzYWdlLiBUaGlzIGlzIGEgc2ltcGxlIHRvYXN0IG1lc3NhZ2VgLFxuICAgICAgY29sb3I6IFRvYXN0Q29sb3JzLk5PVElGWSxcbiAgICAgIGljb246IHRoaXMuaWNvbnNbMl0sXG4gICAgICBhY3Rpb246IFwiRGlzbWlzc1wiXG4gICAgfSxcbiAgICB7XG4gICAgICBtZXNzYWdlOiAnU2FtcGxlIG1lc3NhZ2UnLFxuICAgICAgY29sb3I6IFRvYXN0Q29sb3JzLkdFTkVSQUwsXG4gICAgICBhY3Rpb246IFwiRGlzbWlzc1wiXG4gICAgfSxcbiAgICB7XG4gICAgICAgIG1lc3NhZ2U6IGBUaGlzIGlzIGEgc2ltcGxlIHRvYXN0IG1lc3NhZ2UuIFRoaXMgaXMgYSA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweFwiPnNpbXBsZSB0b2FzdCBtZXNzYWdlPC9zcGFuPi4gVGhpcyBpcyBhIHNpbXBsZSB0b2FzdCBtZXNzYWdlLiBUaGlzIGlzIGEgc2ltcGxlIHRvYXN0IG1lc3NhZ2VgLFxuICAgICAgICBjb2xvcjogVG9hc3RDb2xvcnMuU1VDQ0VTUyxcbiAgICAgICAgYWN0aW9uOiBcIi1cIlxuICAgICAgfSxcbiAgICBdXG5cbiAgcGlja1RvYXN0U2FtcGxlPzogVG9hc3REaXNwbGF5XG5cbiAgb25TZWxlY3RUeXBlKHR5cGU6IHN0cmluZykge1xuICAgIHRoaXMudHlwZSA9IHR5cGVcbiAgfVxuXG4gIG9uQmFzaWModHlwZTogc3RyaW5nLCBpY29uPzogc3RyaW5nLCBhY3Rpb24/OiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ0VSUk9SJzpcbiAgICAgICAgdGhpcy5wcmVzZW50VG9hc3QoVG9hc3RDb2xvcnMuRVJST1IsIGljb24sIGFjdGlvbilcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5GTyc6XG4gICAgICAgIHRoaXMucHJlc2VudFRvYXN0KFRvYXN0Q29sb3JzLklORk8sIGljb24sIGFjdGlvbilcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnV0FSTic6XG4gICAgICAgIHRoaXMucHJlc2VudFRvYXN0KFRvYXN0Q29sb3JzLldBUk4sIGljb24sIGFjdGlvbilcbiAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnTk9USUZZJzpcbiAgICAgICAgdGhpcy5wcmVzZW50VG9hc3QoVG9hc3RDb2xvcnMuTk9USUZZLCBpY29uLCBhY3Rpb24pXG4gICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0dFTkVSQUwnOlxuICAgICAgICB0aGlzLnByZXNlbnRUb2FzdChUb2FzdENvbG9ycy5HRU5FUkFMLCBpY29uLCBhY3Rpb24pXG4gICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMucHJlc2VudFRvYXN0KFRvYXN0Q29sb3JzLlNVQ0NFU1MsIGljb24sIGFjdGlvbilcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHByZXNlbnRUb2FzdChjb2xvcjogVG9hc3RDb2xvcnMsIGljb24/OiBzdHJpbmcsIGFjdGlvbj86IHN0cmluZykge1xuXG4gICAgICBjb25zdCBvcHRpb25zID0gVG9hc3REaXNwbGF5LmFkYXB0KHtcbiAgICAgICAgICBtZXNzYWdlOiBgVGhpcyBpcyBhIHNpbXBsZSB0b2FzdCBtZXNzYWdlLiA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMjJweFwiPnNpbXBsZSB0b2FzdCBtZXNzYWdlPC9zcGFuPi4gVGhpcyBpcyBhIHNpbXBsZSB0b2FzdCBtZXNzYWdlLiBUaGlzIGlzIGEgc2ltcGxlIHRvYXN0IG1lc3NhZ2VgLFxuICAgICAgICAgIGNvbG9yLFxuICAgICAgICAgIGljb24sXG4gICAgICAgICAgYWN0aW9uXG4gICAgICB9KVxuXG4gICAgICBjb25zdCB0b2FzdFBvc2l0aW9uID0gKHRoaXMucG9zaXRpb24udmFsdWUgPT09ICd0b3AnKSA/IFZlcnRpY2FsQWxpZ25tZW50LlRPUCA6IFZlcnRpY2FsQWxpZ25tZW50LkJPVFRPTVxuICAgICAgdGhpcy50b2FzdE1lc3NhZ2VEaXNwbGF5U2VydmljZS50b2FzdE1lc3NhZ2Uob3B0aW9ucywgLTEsIHRvYXN0UG9zaXRpb24pXG4gIH1cblxuICBvbklubGluZSgpIHtcbiAgICBjb25zdCBwaWNrID0gdGhpcy5yYW5kb21OdW1iZXIoMCwgdGhpcy50b2FzdFNhbXBsZXMubGVuZ3RoLTEpXG4gICAgdGhpcy5waWNrVG9hc3RTYW1wbGUgPSB0aGlzLnRvYXN0U2FtcGxlc1twaWNrXVxuICB9XG5cbiAgb25DbG9zZWRUb2FzdCh0b2FzdD86IFRvYXN0RGlzcGxheSkge1xuICAgIGNvbnNvbGUubG9nKHRvYXN0KVxuICB9XG5cbn1cbiIsIjxtYXQtdG9vbGJhciBzdHlsZT1cImRpc3BsYXk6IGZsZXg7XCI+XG4gICAgPGRpdj5Ub2FzdCBNZXNzYWdlIERlbW88L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiZmxleDoxOyB0ZXh0LWFsaWduOiBlbmQ7XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgbWF0SWNvblByZWZpeFxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0eXBlIHwgdGl0bGVjYXNlIH19XG4gICAgICAgICAgICA8bWF0LWljb24+bGF5ZXJzPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L21hdC10b29sYmFyPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgIChjbGljayk9XCJvblNlbGVjdFR5cGUoJ2Jhc2ljJylcIlxuICAgID5cbiAgICAgICAgQmFzaWNcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0VHlwZSgnaWNvbicpXCJcbiAgICA+XG4gICAgICAgIEljb25cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0VHlwZSgnYWN0aW9uJylcIlxuICAgID5cbiAgICAgICAgQWN0aW9uXG4gICAgPC9idXR0b24+XG48L21hdC1tZW51PlxuXG48ZGl2IHN0eWxlPVwibWFyZ2luOiAxcmVtO1wiPlxuICAgIDxzcGFuIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidpY29uJ1wiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cbiAgICAgICAgICAgICAgICA8aDMgc3R5bGU9XCJmbGV4OjE7IG1hcmdpbi1ib3R0b206IDA7XCI+VG9hc3Qgd2l0aCBJY29uPC9oMz5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAuNXJlbTtcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpYygnU1VDQ0VTUycsICdmYXZvcml0ZV9ib3JkZXInKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEljb24gLSBTVUNDRVNTXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkJhc2ljKCdFUlJPUicsICdkYXNoYm9hcmQnKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEljb24gLSBFUlJPUlxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpYygnSU5GTycsICdldmVudCcpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgSWNvbiAtIElORk9cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFzaWMoJ1dBUk4nLCAncGFpZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgSWNvbiAtIFdBUk5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFzaWMoJ1dBUk4nLCAnbm90aWZpY2F0aW9ucycpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgSWNvbiAtIE5PVElGWVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpYygnV0FSTicsICdtb3ZpZV9maWx0ZXInKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEljb24gLSBHRU5FUkFMXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInYWN0aW9uJ1wiPlxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMXJlbTsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcIj5cbiAgICAgICAgICAgICAgICA8aDMgc3R5bGU9XCJmbGV4OjE7IG1hcmdpbi1ib3R0b206IDA7XCI+VG9hc3Qgd2l0aCBJY29uIGFuZCBBY3Rpb248L2gzPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IC41cmVtO1wiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkJhc2ljKCdTVUNDRVNTJywgJ2Zhdm9yaXRlX2JvcmRlcicsICdEaXNtaXNzJylcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb24gLSBTVUNDRVNTXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkJhc2ljKCdFUlJPUicsICdkYXNoYm9hcmQnLCAnRGlzbWlzcycpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uIC0gRVJST1JcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFzaWMoJ0lORk8nLCAnZXZlbnQnLCAnRGlzbWlzcycpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uIC0gSU5GT1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpYygnV0FSTicsICdwYWlkJywgJ0Rpc21pc3MnKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiAtIFdBUk5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFzaWMoJ05PVElGWScsICdub3RpZmljYXRpb25zJywgJ0Rpc21pc3MnKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFjdGlvbiAtIE5PVElGWVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpYygnR0VORVJBTCcsICdtb3ZpZV9maWx0ZXInLCAnRGlzbWlzcycpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uIC0gR0VORVJBTFxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxuXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAxcmVtOyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1wiPlxuICAgICAgICAgICAgICAgIDxoMyBzdHlsZT1cImZsZXg6MTsgbWFyZ2luLWJvdHRvbTogMDtcIj5CYXNpYyBUb2FzdDwvaDM+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogLjVyZW07XCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFzaWMoJ1NVQ0NFU1MnKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIC0gU1VDQ0VTU1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpYygnRVJST1InKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIC0gRVJST1JcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdC1zdHJva2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQmFzaWMoJ0lORk8nKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIC0gSU5GT1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25CYXNpYygnV0FSTicpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmFzaWMgLSBXQVJOXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkJhc2ljKCdOT1RJRlknKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2ljIC0gTk9USUZZXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkJhc2ljKCdHRU5FUkFMJylcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBCYXNpYyAtIEdFTkVSQUxcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IG1hcmdpbi10b3A6IDFyZW07XCI+XG4gICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sXT1cInBvc2l0aW9uXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBnYXA6IDJyZW1cIj5cbiAgICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIHZhbHVlPVwidG9wXCI+VG9wIFBvc2l0aW9uPC9tYXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gdmFsdWU9XCJib3R0b21cIj5Cb3R0b20gUG9zaXRpb248L21hdC1yYWRpby1idXR0b24+XG4gICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgc3R5bGU9XCJtYXJnaW4tdG9wOiAxcmVtOyBtYXJnaW4tYm90dG9tOiAxcmVtO1wiPlxuICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbjwvZGl2PlxuXG48ZGl2IHN0eWxlPVwibWFyZ2luOiAxcmVtO1wiPlxuICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25JbmxpbmUoKVwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMnJlbTtcIj5cbiAgICBBZGQgSW5saW5lIFRvYXN0IE1lc3NhZ2VcbiAgPC9idXR0b24+XG4gIDxhcHAtdG9hc3QtbWVzc2FnZS1kaXNwbGF5LWlubGluZVxuICAgIFt0b2FzdF09XCJwaWNrVG9hc3RTYW1wbGVcIlxuICAgIFtkdXJhdGlvbl09XCI1XCJcbiAgICAoY2xvc2UpPVwib25DbG9zZWRUb2FzdCgkZXZlbnQpXCJcbiAgPjwvYXBwLXRvYXN0LW1lc3NhZ2UtZGlzcGxheS1pbmxpbmU+XG48L2Rpdj5cbiJdfQ==