@daffodil/design 0.67.0 → 0.68.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. package/esm2022/article/article/article.component.mjs +2 -2
  2. package/esm2022/article/examples/article-headings/article-headings.component.mjs +3 -4
  3. package/esm2022/loading-icon/examples/loading-icon-color/loading-icon-color.component.mjs +3 -3
  4. package/esm2022/loading-icon/loading-icon/loading-icon.component.mjs +3 -3
  5. package/esm2022/modal/service/modal.service.mjs +2 -3
  6. package/esm2022/toast/daffodil-design-toast.mjs +5 -0
  7. package/esm2022/toast/examples/daffodil-design-toast-examples.mjs +5 -0
  8. package/esm2022/toast/examples/default-toast/default-toast.component.mjs +38 -0
  9. package/esm2022/toast/examples/default-toast/default-toast.module.mjs +36 -0
  10. package/esm2022/toast/examples/index.mjs +2 -0
  11. package/esm2022/toast/examples/public_api.mjs +15 -0
  12. package/esm2022/toast/examples/toast-positions/toast-positions.component.mjs +42 -0
  13. package/esm2022/toast/examples/toast-positions/toast-positions.module.mjs +57 -0
  14. package/esm2022/toast/examples/toast-status/toast-status.component.mjs +45 -0
  15. package/esm2022/toast/examples/toast-status/toast-status.module.mjs +40 -0
  16. package/esm2022/toast/examples/toast-with-custom-duration/toast-with-custom-duration.component.mjs +26 -0
  17. package/esm2022/toast/examples/toast-with-custom-duration/toast-with-custom-duration.module.mjs +32 -0
  18. package/esm2022/toast/index.mjs +2 -0
  19. package/esm2022/toast/interfaces/toast-action.mjs +2 -0
  20. package/esm2022/toast/interfaces/toast.mjs +2 -0
  21. package/esm2022/toast/options/daff-toast-options.mjs +16 -0
  22. package/esm2022/toast/public_api.mjs +9 -0
  23. package/esm2022/toast/service/changes-focus.mjs +2 -0
  24. package/esm2022/toast/service/position-strategy.mjs +29 -0
  25. package/esm2022/toast/service/position.service.mjs +33 -0
  26. package/esm2022/toast/service/toast.service.mjs +116 -0
  27. package/esm2022/toast/toast/toast-config.mjs +2 -0
  28. package/esm2022/toast/toast/toast-template.component.mjs +262 -0
  29. package/esm2022/toast/toast/toast.component.mjs +82 -0
  30. package/esm2022/toast/toast-actions/toast-actions.directive.mjs +19 -0
  31. package/esm2022/toast/toast-message/toast-message.directive.mjs +19 -0
  32. package/esm2022/toast/toast-title/toast-title.directive.mjs +19 -0
  33. package/esm2022/toast/toast.module.mjs +70 -0
  34. package/fesm2022/daffodil-design-article-examples.mjs +2 -2
  35. package/fesm2022/daffodil-design-article-examples.mjs.map +1 -1
  36. package/fesm2022/daffodil-design-article.mjs +2 -2
  37. package/fesm2022/daffodil-design-article.mjs.map +1 -1
  38. package/fesm2022/daffodil-design-loading-icon-examples.mjs +2 -2
  39. package/fesm2022/daffodil-design-loading-icon-examples.mjs.map +1 -1
  40. package/fesm2022/daffodil-design-loading-icon.mjs +2 -2
  41. package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
  42. package/fesm2022/daffodil-design-modal.mjs +1 -2
  43. package/fesm2022/daffodil-design-modal.mjs.map +1 -1
  44. package/fesm2022/daffodil-design-toast-examples.mjs +287 -0
  45. package/fesm2022/daffodil-design-toast-examples.mjs.map +1 -0
  46. package/fesm2022/daffodil-design-toast.mjs +625 -0
  47. package/fesm2022/daffodil-design-toast.mjs.map +1 -0
  48. package/loading-icon/src/loading-icon-theme.scss +24 -8
  49. package/navbar/README.md +1 -1
  50. package/package.json +1 -1
  51. package/scss/theme.scss +2 -0
  52. package/toast/README.md +115 -0
  53. package/toast/examples/default-toast/default-toast.component.d.ts +15 -0
  54. package/toast/examples/default-toast/default-toast.module.d.ts +11 -0
  55. package/toast/examples/index.d.ts +1 -0
  56. package/toast/examples/public_api.d.ts +2 -0
  57. package/toast/examples/toast-positions/toast-positions.component.d.ts +17 -0
  58. package/toast/examples/toast-positions/toast-positions.module.d.ts +12 -0
  59. package/toast/examples/toast-status/toast-status.component.d.ts +14 -0
  60. package/toast/examples/toast-status/toast-status.module.d.ts +12 -0
  61. package/toast/examples/toast-with-custom-duration/toast-with-custom-duration.component.d.ts +10 -0
  62. package/toast/examples/toast-with-custom-duration/toast-with-custom-duration.module.d.ts +10 -0
  63. package/toast/index.d.ts +1 -0
  64. package/toast/interfaces/toast-action.d.ts +38 -0
  65. package/toast/interfaces/toast.d.ts +20 -0
  66. package/toast/options/daff-toast-options.d.ts +15 -0
  67. package/toast/public_api.d.ts +11 -0
  68. package/toast/service/changes-focus.d.ts +2 -0
  69. package/toast/service/position-strategy.d.ts +3 -0
  70. package/toast/service/position.service.d.ts +15 -0
  71. package/toast/service/toast.service.d.ts +29 -0
  72. package/toast/src/toast-theme.scss +63 -0
  73. package/toast/toast/toast-config.d.ts +7 -0
  74. package/toast/toast/toast-template.component.d.ts +20 -0
  75. package/toast/toast/toast.component.d.ts +52 -0
  76. package/toast/toast-actions/toast-actions.directive.d.ts +6 -0
  77. package/toast/toast-message/toast-message.directive.d.ts +6 -0
  78. package/toast/toast-title/toast-title.directive.d.ts +6 -0
  79. package/toast/toast.module.d.ts +17 -0
@@ -0,0 +1,32 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { DaffButtonModule } from '@daffodil/design/button';
4
+ import { DaffToastModule } from '@daffodil/design/toast';
5
+ import { ToastWithCustomDurationComponent } from './toast-with-custom-duration.component';
6
+ import * as i0 from "@angular/core";
7
+ export class ToastWithCustomDurationModule {
8
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastWithCustomDurationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: ToastWithCustomDurationModule, declarations: [ToastWithCustomDurationComponent], imports: [CommonModule,
10
+ DaffToastModule,
11
+ DaffButtonModule], exports: [ToastWithCustomDurationComponent] }); }
12
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastWithCustomDurationModule, imports: [CommonModule,
13
+ DaffToastModule,
14
+ DaffButtonModule] }); }
15
+ }
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: ToastWithCustomDurationModule, decorators: [{
17
+ type: NgModule,
18
+ args: [{
19
+ declarations: [
20
+ ToastWithCustomDurationComponent,
21
+ ],
22
+ imports: [
23
+ CommonModule,
24
+ DaffToastModule,
25
+ DaffButtonModule,
26
+ ],
27
+ exports: [
28
+ ToastWithCustomDurationComponent,
29
+ ],
30
+ }]
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Qtd2l0aC1jdXN0b20tZHVyYXRpb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdG9hc3QvZXhhbXBsZXMvc3JjL3RvYXN0LXdpdGgtY3VzdG9tLWR1cmF0aW9uL3RvYXN0LXdpdGgtY3VzdG9tLWR1cmF0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFekQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBZTFGLE1BQU0sT0FBTyw2QkFBNkI7aUlBQTdCLDZCQUE2QjtrSUFBN0IsNkJBQTZCLGlCQVh0QyxnQ0FBZ0MsYUFHaEMsWUFBWTtZQUNaLGVBQWU7WUFDZixnQkFBZ0IsYUFHaEIsZ0NBQWdDO2tJQUd2Qiw2QkFBNkIsWUFSdEMsWUFBWTtZQUNaLGVBQWU7WUFDZixnQkFBZ0I7OzJGQU1QLDZCQUE2QjtrQkFiekMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0NBQWdDO3FCQUNqQztvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGdDQUFnQztxQkFDakM7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGFmZkJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BkYWZmb2RpbC9kZXNpZ24vYnV0dG9uJztcbmltcG9ydCB7IERhZmZUb2FzdE1vZHVsZSB9IGZyb20gJ0BkYWZmb2RpbC9kZXNpZ24vdG9hc3QnO1xuXG5pbXBvcnQgeyBUb2FzdFdpdGhDdXN0b21EdXJhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vdG9hc3Qtd2l0aC1jdXN0b20tZHVyYXRpb24uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgVG9hc3RXaXRoQ3VzdG9tRHVyYXRpb25Db21wb25lbnQsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRGFmZlRvYXN0TW9kdWxlLFxuICAgIERhZmZCdXR0b25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBUb2FzdFdpdGhDdXN0b21EdXJhdGlvbkNvbXBvbmVudCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RXaXRoQ3VzdG9tRHVyYXRpb25Nb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public_api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2Rlc2lnbi90b2FzdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdG9hc3Qvc3JjL2ludGVyZmFjZXMvdG9hc3QtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgRGFmZlBhbGV0dGUsXG4gIERhZmZTdGF0dXMsXG59IGZyb20gJ0BkYWZmb2RpbC9kZXNpZ24nO1xuXG4vKipcbiAqIEFuIGludGVyZmFjZSBmb3IgcHJvcGVydGllcyBvZiBhY3Rpb25zLCBzcGVjaWZpY2FsbHkgdGhlIERhZmZCdXR0b25Db21wb25lbnQsIHBsYWNlZCBpbnNpZGUgb2YgdGhlIHRvYXN0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhZmZUb2FzdEFjdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZXMgb2YgYnV0dG9ucyBhdmFpbGFibGUgdG8gYmUgdXNlZCwgYXMgZGVmaW5lZCBpbiB0aGUge0BsaW5rIERhZmZCdXR0b25Db21wb25lbnR9LlxuICAgKi9cbiAgdHlwZT86ICdyYWlzZWQnIHwgJ3VuZGVybGluZScgfCAnc3Ryb2tlZCcgfCAnZmxhdCcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IGZvciB0aGUgYnV0dG9uXG4gICAqL1xuICBjb250ZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSBidXR0b24sIGFzIGRlZmluZWQgaW4gdGhlIHtAbGluayBEYWZmQnV0dG9uQ29tcG9uZW50fS5cbiAgICovXG4gIHNpemU/OiAnc20nIHwgJ21kJyB8ICdsZycgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjb2xvciBvZiB0aGUgYnV0dG9uLCBhcyBkZWZpbmVkIGluIHRoZSB7QGxpbmsgRGFmZkJ1dHRvbkNvbXBvbmVudH0uXG4gICAqIENvbG9yIGFuZCBzdGF0dXMgc2hvdWxkIG5vdCBiZSB1c2VkIHNpbXVsdGFuZW91c2x5LlxuICAgKi9cbiAgY29sb3I/OiBEYWZmUGFsZXR0ZTtcblxuICAvKipcbiAgICogVGhlIHN0YXR1cyBvZiB0aGUgYnV0dG9uLCBhcyBkZWZpbmVkIGluIHRoZSB7QGxpbmsgRGFmZkJ1dHRvbkNvbXBvbmVudH0uXG4gICAqIENvbG9yIGFuZCBzdGF0dXMgc2hvdWxkIG5vdCBiZSB1c2VkIHNpbXVsdGFuZW91c2x5LlxuICAgKi9cbiAgc3RhdHVzPzogRGFmZlN0YXR1cztcblxuICBkYXRhPzogUmVjb3JkPHN0cmluZywgYW55PjtcblxuICAvKipcbiAgICogU2V0cyBhbiBFdmVudEVtaXR0ZXIgb24gYSBEYWZmVG9hc3RBY3Rpb25cbiAgICovXG4gIGV2ZW50RW1pdHRlcj86IEV2ZW50RW1pdHRlcjxEYWZmVG9hc3RBY3Rpb24+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhZmZUb2FzdEFjdGlvbkV2ZW50IHtcbiAgZXZlbnQ6IE1vdXNlRXZlbnQ7XG5cbiAgYWN0aW9uOiBEYWZmVG9hc3RBY3Rpb247XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbi90b2FzdC9zcmMvaW50ZXJmYWNlcy90b2FzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEYWZmU3RhdHVzIH0gZnJvbSAnQGRhZmZvZGlsL2Rlc2lnbic7XG5cbmltcG9ydCB7IERhZmZUb2FzdEFjdGlvbiB9IGZyb20gJy4vdG9hc3QtYWN0aW9uJztcblxuLyoqIFBvc3NpYmxlIGRhdGEgdGhhdCBjYW4gYmUgc2hvd24gb24gYSB0b2FzdCAqL1xuZXhwb3J0IGludGVyZmFjZSBEYWZmVG9hc3REYXRhIHtcbiAgLyoqIEEgdGl0bGUgdGhhdCBwcm92aWRlcyBhIHF1aWNrIG92ZXZpZXcgb2YgdGhlIHRvYXN0ICovXG4gIHRpdGxlOiBzdHJpbmc7XG5cbiAgLyoqIEEgc2hvcnQgbWVzc2FnZSB1c2VkIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBkZXRhaWxzIGFib3V0IHRoZSB0b2FzdCAqL1xuICBtZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKiBTZXRzIGEgc3RhdHVzIG9uIHRoZSB0b2FzdCAqL1xuICBzdGF0dXM/OiBEYWZmU3RhdHVzO1xuXG4gIC8qKiBVc2VkIHRvIGRpc3BsYXkgYWN0aW9ucyBpbiB0aGUgdG9hc3QgKi9cbiAgYWN0aW9ucz86IERhZmZUb2FzdEFjdGlvbltdO1xuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGUgdG9hc3QgaXMgZGlzbWlzc2libGUgKi9cbiAgZGlzbWlzc2libGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhZmZUb2FzdCBleHRlbmRzIERhZmZUb2FzdERhdGEge1xuICBkaXNtaXNzOiAoKSA9PiB2b2lkO1xuICBkaXNtaXNzYWxTdHJlYW06IE9ic2VydmFibGU8dm9pZCB8IG51bWJlcj47XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { InjectionToken, } from '@angular/core';
2
+ ;
3
+ ;
4
+ export const daffToastDefaultOptions = {
5
+ position: {
6
+ vertical: 'top',
7
+ horizontal: 'right',
8
+ },
9
+ useParent: true,
10
+ };
11
+ export const DAFF_TOAST_OPTIONS = new InjectionToken('DAFF_TOAST_OPTIONS', { providedIn: 'root', factory: () => daffToastDefaultOptions });
12
+ export const provideDaffToastOptions = (options) => ({ provide: DAFF_TOAST_OPTIONS, useValue: {
13
+ ...daffToastDefaultOptions,
14
+ ...options,
15
+ } });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFmZi10b2FzdC1vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdG9hc3Qvc3JjL29wdGlvbnMvZGFmZi10b2FzdC1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxjQUFjLEdBRWYsTUFBTSxlQUFlLENBQUM7QUFLOEMsQ0FBQztBQUVjLENBQUM7QUFTckYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQXFCO0lBQ3ZELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxLQUFLO1FBQ2YsVUFBVSxFQUFFLE9BQU87S0FDcEI7SUFDRCxTQUFTLEVBQUUsSUFBSTtDQUNoQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7QUFFM0ksTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUF5QixFQUFpQixFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUU7UUFDN0gsR0FBRyx1QkFBdUI7UUFDMUIsR0FBRyxPQUFPO0tBQ1gsRUFBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3Rpb25Ub2tlbixcbiAgVmFsdWVQcm92aWRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbnR5cGUgV2l0aG91dDxULCBVPiA9IHsgW1AgaW4gRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBVPl0/OiBuZXZlciB9O1xudHlwZSBYT1I8VCwgVT4gPSAoVCB8IFUpIGV4dGVuZHMgUmVjb3JkPHN0cmluZyx1bmtub3duPiA/IChXaXRob3V0PFQsIFU+ICYgVSkgfCAoV2l0aG91dDxVLCBUPiAmIFQpIDogVCB8IFU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmVydGljYWxQb3NpdGlvblR5cGVzIHsgdmVydGljYWw6ICd0b3AnIHwgJ2JvdHRvbScgfTtcblxuZXhwb3J0IGludGVyZmFjZSBIb3Jpem9udGFsUG9zaXRpb25UeXBlcyB7IGhvcml6b250YWw6ICdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JyB9O1xuXG5leHBvcnQgdHlwZSBEYWZmVG9hc3RQb3NpdGlvbiA9IFZlcnRpY2FsUG9zaXRpb25UeXBlcyAmIEhvcml6b250YWxQb3NpdGlvblR5cGVzO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhZmZUb2FzdE9wdGlvbnMge1xuICBwb3NpdGlvbjogRGFmZlRvYXN0UG9zaXRpb247XG4gIHVzZVBhcmVudDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGRhZmZUb2FzdERlZmF1bHRPcHRpb25zOiBEYWZmVG9hc3RPcHRpb25zID0ge1xuICBwb3NpdGlvbjoge1xuICAgIHZlcnRpY2FsOiAndG9wJyxcbiAgICBob3Jpem9udGFsOiAncmlnaHQnLFxuICB9LFxuICB1c2VQYXJlbnQ6IHRydWUsXG59O1xuXG5leHBvcnQgY29uc3QgREFGRl9UT0FTVF9PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdEQUZGX1RPQVNUX09QVElPTlMnLCB7IHByb3ZpZGVkSW46ICdyb290JywgZmFjdG9yeTogKCkgPT4gZGFmZlRvYXN0RGVmYXVsdE9wdGlvbnMgfSk7XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlRGFmZlRvYXN0T3B0aW9ucyA9IChvcHRpb25zOiBEYWZmVG9hc3RPcHRpb25zKTogVmFsdWVQcm92aWRlciA9PiAoeyBwcm92aWRlOiBEQUZGX1RPQVNUX09QVElPTlMsIHVzZVZhbHVlOiB7XG4gIC4uLmRhZmZUb2FzdERlZmF1bHRPcHRpb25zLFxuICAuLi5vcHRpb25zLFxufX0pO1xuIl19
@@ -0,0 +1,9 @@
1
+ export { DaffToastPositionService } from './service/position.service';
2
+ export { DaffToastModule } from './toast.module';
3
+ export { DaffToastService } from './service/toast.service';
4
+ export { DAFF_TOAST_OPTIONS, provideDaffToastOptions, } from './options/daff-toast-options';
5
+ export * from './toast/toast.component';
6
+ export * from './toast-actions/toast-actions.directive';
7
+ export * from './toast-title/toast-title.directive';
8
+ export * from './toast-message/toast-message.directive';
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvZGVzaWduL3RvYXN0L3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVMzRCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHVCQUF1QixHQUN4QixNQUFNLDhCQUE4QixDQUFDO0FBRXRDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEYWZmVG9hc3RQb3NpdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2UvcG9zaXRpb24uc2VydmljZSc7XG5leHBvcnQgeyBEYWZmVG9hc3RNb2R1bGUgfSBmcm9tICcuL3RvYXN0Lm1vZHVsZSc7XG5leHBvcnQgeyBEYWZmVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL3RvYXN0LnNlcnZpY2UnO1xuZXhwb3J0IHsgRGFmZlRvYXN0Q29uZmlndXJhdGlvbiB9IGZyb20gJy4vdG9hc3QvdG9hc3QtY29uZmlnJztcbmV4cG9ydCB7XG4gIERhZmZUb2FzdCxcbiAgRGFmZlRvYXN0RGF0YSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3RvYXN0JztcblxuZXhwb3J0IHsgRGFmZlRvYXN0QWN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3RvYXN0LWFjdGlvbic7XG5cbmV4cG9ydCB7XG4gIERBRkZfVE9BU1RfT1BUSU9OUyxcbiAgcHJvdmlkZURhZmZUb2FzdE9wdGlvbnMsXG59IGZyb20gJy4vb3B0aW9ucy9kYWZmLXRvYXN0LW9wdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3RvYXN0L3RvYXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3RvYXN0LWFjdGlvbnMvdG9hc3QtYWN0aW9ucy5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC10aXRsZS90b2FzdC10aXRsZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90b2FzdC1tZXNzYWdlL3RvYXN0LW1lc3NhZ2UuZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export const daffToastChangesFocus = (toast) => toast.actions?.length > 0;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhbmdlcy1mb2N1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduL3RvYXN0L3NyYy9zZXJ2aWNlL2NoYW5nZXMtZm9jdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFnQixFQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYWZmVG9hc3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RvYXN0JztcblxuZXhwb3J0IGNvbnN0IGRhZmZUb2FzdENoYW5nZXNGb2N1cyA9ICh0b2FzdDogRGFmZlRvYXN0KTogYm9vbGVhbiA9PiB0b2FzdC5hY3Rpb25zPy5sZW5ndGggPiAwO1xuIl19
@@ -0,0 +1,29 @@
1
+ import { GlobalPositionStrategy, } from '@angular/cdk/overlay';
2
+ export const createPositionStrategy = (position) => {
3
+ const strat = new GlobalPositionStrategy();
4
+ switch (position.horizontal) {
5
+ case 'left':
6
+ strat.left('48px');
7
+ break;
8
+ case 'right':
9
+ strat.right('48px');
10
+ break;
11
+ case 'center':
12
+ strat.centerHorizontally();
13
+ break;
14
+ default:
15
+ strat.right('48px');
16
+ }
17
+ switch (position.vertical) {
18
+ case 'top':
19
+ strat.top('80px');
20
+ break;
21
+ case 'bottom':
22
+ strat.bottom('48px');
23
+ break;
24
+ default:
25
+ strat.top('80px');
26
+ }
27
+ return strat;
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24tc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2Rlc2lnbi90b2FzdC9zcmMvc2VydmljZS9wb3NpdGlvbi1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEdBRXZCLE1BQU0sc0JBQXNCLENBQUM7QUFJOUIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUEyQixFQUFvQixFQUFFO0lBQ3RGLE1BQU0sS0FBSyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztJQUUzQyxRQUFTLFFBQVEsQ0FBQyxVQUFVLEVBQUc7UUFDN0IsS0FBSyxNQUFNO1lBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNuQixNQUFNO1FBQ1IsS0FBSyxPQUFPO1lBQ1YsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNwQixNQUFNO1FBQ1IsS0FBSyxRQUFRO1lBQ1gsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDM0IsTUFBTTtRQUNSO1lBQ0UsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN2QjtJQUVELFFBQU8sUUFBUSxDQUFDLFFBQVEsRUFBRTtRQUN4QixLQUFLLEtBQUs7WUFDUixLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xCLE1BQU07UUFDUixLQUFLLFFBQVE7WUFDWCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JCLE1BQU07UUFDUjtZQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDckI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEdsb2JhbFBvc2l0aW9uU3RyYXRlZ3ksXG4gIFBvc2l0aW9uU3RyYXRlZ3ksXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcblxuaW1wb3J0IHsgRGFmZlRvYXN0UG9zaXRpb24gfSBmcm9tICcuLi9vcHRpb25zL2RhZmYtdG9hc3Qtb3B0aW9ucyc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVQb3NpdGlvblN0cmF0ZWd5ID0gKHBvc2l0aW9uOiBEYWZmVG9hc3RQb3NpdGlvbik6IFBvc2l0aW9uU3RyYXRlZ3kgPT4ge1xuICBjb25zdCBzdHJhdCA9IG5ldyBHbG9iYWxQb3NpdGlvblN0cmF0ZWd5KCk7XG5cbiAgc3dpdGNoICggcG9zaXRpb24uaG9yaXpvbnRhbCApIHtcbiAgICBjYXNlICdsZWZ0JzpcbiAgICAgIHN0cmF0LmxlZnQoJzQ4cHgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHN0cmF0LnJpZ2h0KCc0OHB4Jyk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdjZW50ZXInOlxuICAgICAgc3RyYXQuY2VudGVySG9yaXpvbnRhbGx5KCk7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgc3RyYXQucmlnaHQoJzQ4cHgnKTtcbiAgfVxuXG4gIHN3aXRjaChwb3NpdGlvbi52ZXJ0aWNhbCkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICBzdHJhdC50b3AoJzgwcHgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICBzdHJhdC5ib3R0b20oJzQ4cHgnKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBzdHJhdC50b3AoJzgwcHgnKTtcbiAgfVxuXG4gIHJldHVybiBzdHJhdDtcbn07XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { BreakpointObserver } from '@angular/cdk/layout';
2
+ import { Inject, Injectable, } from '@angular/core';
3
+ import { DaffBreakpoints } from '@daffodil/design';
4
+ import { DAFF_TOAST_OPTIONS, } from '../options/daff-toast-options';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/cdk/layout";
7
+ export class DaffToastPositionService {
8
+ constructor(options, mediaQuery) {
9
+ this.options = options;
10
+ this.mediaQuery = mediaQuery;
11
+ this._config = options.position;
12
+ }
13
+ get config() {
14
+ return this.mediaQuery.isMatched(DaffBreakpoints.MOBILE)
15
+ ? this._position ?? this._config
16
+ : { vertical: 'bottom', horizontal: 'center' };
17
+ }
18
+ set config(val) {
19
+ this._config = val;
20
+ }
21
+ setPosition(position) {
22
+ this._position = position;
23
+ }
24
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastPositionService, deps: [{ token: DAFF_TOAST_OPTIONS }, { token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastPositionService }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastPositionService, decorators: [{
28
+ type: Injectable
29
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
30
+ type: Inject,
31
+ args: [DAFF_TOAST_OPTIONS]
32
+ }] }, { type: i1.BreakpointObserver }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduL3RvYXN0L3NyYy9zZXJ2aWNlL3Bvc2l0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUNMLE1BQU0sRUFDTixVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRW5ELE9BQU8sRUFHTCxrQkFBa0IsR0FDbkIsTUFBTSwrQkFBK0IsQ0FBQzs7O0FBR3ZDLE1BQU0sT0FBTyx3QkFBd0I7SUFFbkMsWUFBZ0QsT0FBeUIsRUFBVSxVQUE4QjtRQUFqRSxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUFVLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBQy9HLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztJQUNsQyxDQUFDO0lBS0QsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO1lBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ2hDLENBQUMsQ0FBb0IsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsR0FBc0I7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUEyQjtRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM1QixDQUFDO2lJQXJCVSx3QkFBd0Isa0JBRWYsa0JBQWtCO3FJQUYzQix3QkFBd0I7OzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVU7OzBCQUdJLE1BQU07MkJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEYWZmQnJlYWtwb2ludHMgfSBmcm9tICdAZGFmZm9kaWwvZGVzaWduJztcblxuaW1wb3J0IHtcbiAgRGFmZlRvYXN0T3B0aW9ucyxcbiAgRGFmZlRvYXN0UG9zaXRpb24sXG4gIERBRkZfVE9BU1RfT1BUSU9OUyxcbn0gZnJvbSAnLi4vb3B0aW9ucy9kYWZmLXRvYXN0LW9wdGlvbnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGFmZlRvYXN0UG9zaXRpb25TZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERBRkZfVE9BU1RfT1BUSU9OUykgcHJpdmF0ZSBvcHRpb25zOiBEYWZmVG9hc3RPcHRpb25zLCBwcml2YXRlIG1lZGlhUXVlcnk6IEJyZWFrcG9pbnRPYnNlcnZlcikge1xuICAgIHRoaXMuX2NvbmZpZyA9IG9wdGlvbnMucG9zaXRpb247XG4gIH1cblxuICBwcml2YXRlIF9jb25maWc6IERhZmZUb2FzdFBvc2l0aW9uO1xuICBwcml2YXRlIF9wb3NpdGlvbjogRGFmZlRvYXN0UG9zaXRpb247XG5cbiAgZ2V0IGNvbmZpZygpOiBEYWZmVG9hc3RQb3NpdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubWVkaWFRdWVyeS5pc01hdGNoZWQoRGFmZkJyZWFrcG9pbnRzLk1PQklMRSlcbiAgICAgID8gdGhpcy5fcG9zaXRpb24gPz8gdGhpcy5fY29uZmlnXG4gICAgICA6IDxEYWZmVG9hc3RQb3NpdGlvbj57IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2NlbnRlcicgfTtcbiAgfVxuXG4gIHNldCBjb25maWcodmFsOiBEYWZmVG9hc3RQb3NpdGlvbikge1xuICAgIHRoaXMuX2NvbmZpZyA9IHZhbDtcbiAgfVxuXG4gIHNldFBvc2l0aW9uKHBvc2l0aW9uOiBEYWZmVG9hc3RQb3NpdGlvbikge1xuICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,116 @@
1
+ import { BreakpointObserver } from '@angular/cdk/layout';
2
+ import { Overlay, } from '@angular/cdk/overlay';
3
+ import { ComponentPortal } from '@angular/cdk/portal';
4
+ import { EventEmitter, Inject, Injectable, Optional, SkipSelf, } from '@angular/core';
5
+ import { EMPTY, merge, of, } from 'rxjs';
6
+ import { delay, filter, map, take, tap, } from 'rxjs/operators';
7
+ import { DaffBreakpoints, DaffFocusStackService, } from '@daffodil/design';
8
+ import { daffToastChangesFocus } from './changes-focus';
9
+ import { createPositionStrategy } from './position-strategy';
10
+ import { DaffToastPositionService } from './position.service';
11
+ import { DAFF_TOAST_OPTIONS, } from '../options/daff-toast-options';
12
+ import { daffDefaultToastConfiguration, } from '../toast/toast-config';
13
+ import { DaffToastTemplateComponent } from '../toast/toast-template.component';
14
+ import { DaffToastModule } from '../toast.module';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@angular/cdk/overlay";
17
+ import * as i2 from "@angular/cdk/layout";
18
+ import * as i3 from "./position.service";
19
+ import * as i4 from "@daffodil/design";
20
+ export class DaffToastService {
21
+ constructor(overlay, options, _parentToast, mediaQuery, toastPosition, focusStack) {
22
+ this.overlay = overlay;
23
+ this.options = options;
24
+ this._parentToast = _parentToast;
25
+ this.mediaQuery = mediaQuery;
26
+ this.toastPosition = toastPosition;
27
+ this.focusStack = focusStack;
28
+ this._toasts = [];
29
+ this._sub = this.mediaQuery.observe(DaffBreakpoints.MOBILE).pipe(filter(() => this._overlayRef !== undefined), map((position) => createPositionStrategy(this.toastPosition.config)), tap((strategy) => this._overlayRef.updatePositionStrategy(strategy))).subscribe();
30
+ }
31
+ ngOnDestroy() {
32
+ this._sub.unsubscribe();
33
+ }
34
+ _attachToastTemplate(overlayRef) {
35
+ const template = overlayRef.attach(new ComponentPortal(DaffToastTemplateComponent));
36
+ return template;
37
+ }
38
+ _createOverlayRef() {
39
+ return this.overlay.create({
40
+ hasBackdrop: false,
41
+ scrollStrategy: this.overlay.scrollStrategies.noop(),
42
+ positionStrategy: createPositionStrategy(this.toastPosition.config),
43
+ });
44
+ }
45
+ open(toast, configuration) {
46
+ if (this._parentToast && this.options.useParent) {
47
+ return this._parentToast.open(toast, configuration);
48
+ }
49
+ const config = {
50
+ ...daffDefaultToastConfiguration,
51
+ // sets the default duration to 5000ms if a toast does not have actions
52
+ duration: toast.actions?.length > 0 ? undefined : 5000,
53
+ ...configuration,
54
+ };
55
+ if (this._toasts.length === 0) {
56
+ this._overlayRef = this._createOverlayRef();
57
+ this._template = this._attachToastTemplate(this._overlayRef);
58
+ }
59
+ const dismissEvent = new EventEmitter();
60
+ const _toastPlus = {
61
+ dismissible: true,
62
+ ...toast,
63
+ dismiss: () => {
64
+ dismissEvent.emit();
65
+ },
66
+ dismissalStream: merge(config.duration ? of(undefined).pipe(delay(config.duration)) : EMPTY, dismissEvent).pipe(take(1)),
67
+ };
68
+ _toastPlus.dismissalStream.subscribe(() => {
69
+ this.close(_toastPlus);
70
+ });
71
+ this._toasts = [
72
+ _toastPlus,
73
+ ...this._toasts,
74
+ ];
75
+ this._template.instance.items = this._toasts;
76
+ return _toastPlus;
77
+ }
78
+ close(toast) {
79
+ if (this._parentToast && this.options.useParent) {
80
+ this._parentToast.close(toast);
81
+ return;
82
+ }
83
+ if (daffToastChangesFocus(toast)) {
84
+ this.focusStack.pop();
85
+ }
86
+ const index = this._toasts.indexOf(toast);
87
+ if (index === -1) {
88
+ throw new Error('The Toast that you are trying to remove does not exist.');
89
+ }
90
+ this._toasts = this._toasts.filter(m => m !== toast);
91
+ this._template.instance.items = [...this._toasts];
92
+ // This currently overrides the ":leave" animation as we currently
93
+ // remove the animating element immediately after there are no more toasts,
94
+ // without waiting for the animation to complete.
95
+ if (this._toasts.length === 0) {
96
+ this._overlayRef.dispose();
97
+ this._template.destroy();
98
+ this._overlayRef = undefined;
99
+ this._template = undefined;
100
+ }
101
+ }
102
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastService, deps: [{ token: i1.Overlay }, { token: DAFF_TOAST_OPTIONS }, { token: DaffToastService, optional: true, skipSelf: true }, { token: i2.BreakpointObserver }, { token: i3.DaffToastPositionService }, { token: i4.DaffFocusStackService }], target: i0.ɵɵFactoryTarget.Injectable }); }
103
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastService, providedIn: DaffToastModule }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastService, decorators: [{
106
+ type: Injectable,
107
+ args: [{ providedIn: DaffToastModule }]
108
+ }], ctorParameters: () => [{ type: i1.Overlay }, { type: undefined, decorators: [{
109
+ type: Inject,
110
+ args: [DAFF_TOAST_OPTIONS]
111
+ }] }, { type: DaffToastService, decorators: [{
112
+ type: Optional
113
+ }, {
114
+ type: SkipSelf
115
+ }] }, { type: i2.BreakpointObserver }, { type: i3.DaffToastPositionService }, { type: i4.DaffFocusStackService }] });
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZGVzaWduL3RvYXN0L3NyYy9zZXJ2aWNlL3RvYXN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUNMLE9BQU8sR0FFUixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBRUwsWUFBWSxFQUNaLE1BQU0sRUFDTixVQUFVLEVBRVYsUUFBUSxFQUNSLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsS0FBSyxFQUVMLEtBQUssRUFDTCxFQUFFLEdBRUgsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsS0FBSyxFQUNMLE1BQU0sRUFDTixHQUFHLEVBQ0gsSUFBSSxFQUNKLEdBQUcsR0FDSixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCxlQUFlLEVBQ2YscUJBQXFCLEdBQ3RCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFLOUQsT0FBTyxFQUNMLGtCQUFrQixHQUVuQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFDTCw2QkFBNkIsR0FFOUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQUdsRCxNQUFNLE9BQU8s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Q3BELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWxELGtFQUFrRTtRQUNsRSwyRUFBMkU7UUFDM0UsaURBQWlEO1FBQ2pELElBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztZQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUM1QjtJQUNILENBQUM7aUlBeEhVLGdCQUFnQix5Q0FZakIsa0JBQWtCO3FJQVpqQixnQkFBZ0IsY0FESCxlQUFlOzsyRkFDNUIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTs7MEJBYXRDLE1BQU07MkJBQUMsa0JBQWtCOzswQkFDekIsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHtcbiAgT3ZlcmxheSxcbiAgT3ZlcmxheVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG4gIE9wdGlvbmFsLFxuICBTa2lwU2VsZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBFTVBUWSxcbiAgaW50ZXJ2YWwsXG4gIG1lcmdlLFxuICBvZixcbiAgU3Vic2NyaXB0aW9uLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGRlbGF5LFxuICBmaWx0ZXIsXG4gIG1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIERhZmZCcmVha3BvaW50cyxcbiAgRGFmZkZvY3VzU3RhY2tTZXJ2aWNlLFxufSBmcm9tICdAZGFmZm9kaWwvZGVzaWduJztcblxuaW1wb3J0IHsgZGFmZlRvYXN0Q2hhbmdlc0ZvY3VzIH0gZnJvbSAnLi9jaGFuZ2VzLWZvY3VzJztcbmltcG9ydCB7IGNyZWF0ZVBvc2l0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL3Bvc2l0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IERhZmZUb2FzdFBvc2l0aW9uU2VydmljZSB9IGZyb20gJy4vcG9zaXRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICBEYWZmVG9hc3QsXG4gIERhZmZUb2FzdERhdGEsXG59IGZyb20gJy4uL2ludGVyZmFjZXMvdG9hc3QnO1xuaW1wb3J0IHtcbiAgREFGRl9UT0FTVF9PUFRJT05TLFxuICBEYWZmVG9hc3RPcHRpb25zLFxufSBmcm9tICcuLi9vcHRpb25zL2RhZmYtdG9hc3Qtb3B0aW9ucyc7XG5pbXBvcnQge1xuICBkYWZmRGVmYXVsdFRvYXN0Q29uZmlndXJhdGlvbixcbiAgRGFmZlRvYXN0Q29uZmlndXJhdGlvbixcbn0gZnJvbSAnLi4vdG9hc3QvdG9hc3QtY29uZmlnJztcbmltcG9ydCB7IERhZmZUb2FzdFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9hc3QvdG9hc3QtdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IERhZmZUb2FzdE1vZHVsZSB9IGZyb20gJy4uL3RvYXN0Lm1vZHVsZSc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogRGFmZlRvYXN0TW9kdWxlIH0pXG5leHBvcnQgY2xhc3MgRGFmZlRvYXN0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBfc3ViOiBTdWJzY3JpcHRpb247XG5cbiAgcHJpdmF0ZSBfdG9hc3RzOiBEYWZmVG9hc3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY/OiBPdmVybGF5UmVmO1xuXG4gIHByaXZhdGUgX3RlbXBsYXRlPzogQ29tcG9uZW50UmVmPERhZmZUb2FzdFRlbXBsYXRlQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgQEluamVjdChEQUZGX1RPQVNUX09QVElPTlMpIHByaXZhdGUgb3B0aW9uczogRGFmZlRvYXN0T3B0aW9ucyxcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwcml2YXRlIF9wYXJlbnRUb2FzdDogRGFmZlRvYXN0U2VydmljZSxcbiAgICBwcml2YXRlIG1lZGlhUXVlcnk6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICBwcml2YXRlIHRvYXN0UG9zaXRpb246IERhZmZUb2FzdFBvc2l0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGZvY3VzU3RhY2s6IERhZmZGb2N1c1N0YWNrU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5fc3ViID0gdGhpcy5tZWRpYVF1ZXJ5Lm9ic2VydmUoRGFmZkJyZWFrcG9pbnRzLk1PQklMRSkucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLl9vdmVybGF5UmVmICE9PSB1bmRlZmluZWQpLFxuICAgICAgbWFwKChwb3NpdGlvbikgPT4gY3JlYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnRvYXN0UG9zaXRpb24uY29uZmlnKSksXG4gICAgICB0YXAoKHN0cmF0ZWd5KSA9PiB0aGlzLl9vdmVybGF5UmVmLnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3koc3RyYXRlZ3kpKSxcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9hdHRhY2hUb2FzdFRlbXBsYXRlKFxuXHQgIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXG4gICk6IENvbXBvbmVudFJlZjxEYWZmVG9hc3RUZW1wbGF0ZUNvbXBvbmVudD4ge1xuXHQgIGNvbnN0IHRlbXBsYXRlID0gb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChEYWZmVG9hc3RUZW1wbGF0ZUNvbXBvbmVudCkpO1xuXHQgIHJldHVybiB0ZW1wbGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU92ZXJsYXlSZWYoKTogT3ZlcmxheVJlZiB7XG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUoe1xuXHQgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuXHQgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLm5vb3AoKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IGNyZWF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy50b2FzdFBvc2l0aW9uLmNvbmZpZyksXG5cdCAgfSk7XG4gIH1cblxuICBvcGVuKFxuXHQgIHRvYXN0OiBEYWZmVG9hc3REYXRhLFxuXHQgIGNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPERhZmZUb2FzdENvbmZpZ3VyYXRpb24+LFxuICApOiBEYWZmVG9hc3Qge1xuICAgIGlmKHRoaXMuX3BhcmVudFRvYXN0ICYmIHRoaXMub3B0aW9ucy51c2VQYXJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRUb2FzdC5vcGVuKHRvYXN0LCBjb25maWd1cmF0aW9uKTtcbiAgICB9XG5cblx0ICBjb25zdCBjb25maWc6IERhZmZUb2FzdENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAuLi5kYWZmRGVmYXVsdFRvYXN0Q29uZmlndXJhdGlvbixcbiAgICAgIC8vIHNldHMgdGhlIGRlZmF1bHQgZHVyYXRpb24gdG8gNTAwMG1zIGlmIGEgdG9hc3QgZG9lcyBub3QgaGF2ZSBhY3Rpb25zXG4gICAgICBkdXJhdGlvbjogdG9hc3QuYWN0aW9ucz8ubGVuZ3RoID4gMCA/IHVuZGVmaW5lZCA6IDUwMDAsXG4gICAgICAuLi5jb25maWd1cmF0aW9uLFxuICAgIH07XG4gICAgaWYodGhpcy5fdG9hc3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX2NyZWF0ZU92ZXJsYXlSZWYoKTtcbiAgICAgIHRoaXMuX3RlbXBsYXRlID0gdGhpcy5fYXR0YWNoVG9hc3RUZW1wbGF0ZSh0aGlzLl9vdmVybGF5UmVmKTtcbiAgICB9XG4gICAgY29uc3QgZGlzbWlzc0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIGNvbnN0IF90b2FzdFBsdXM6IERhZmZUb2FzdCA9IHtcbiAgICAgIGRpc21pc3NpYmxlOiB0cnVlLFxuICAgICAgLi4udG9hc3QsXG4gICAgICBkaXNtaXNzOiAoKSA9PiB7XG4gICAgICAgIGRpc21pc3NFdmVudC5lbWl0KCk7XG4gICAgICB9LFxuICAgICAgZGlzbWlzc2FsU3RyZWFtOiBtZXJnZShcbiAgICAgICAgY29uZmlnLmR1cmF0aW9uID8gb2YodW5kZWZpbmVkKS5waXBlKGRlbGF5KGNvbmZpZy5kdXJhdGlvbikpIDogRU1QVFksXG4gICAgICAgIGRpc21pc3NFdmVudCxcbiAgICAgICkucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICksXG4gICAgfTtcblxuICAgIF90b2FzdFBsdXMuZGlzbWlzc2FsU3RyZWFtLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlKF90b2FzdFBsdXMpO1xuICAgIH0pO1xuXG5cdCAgdGhpcy5fdG9hc3RzID0gW1xuICAgICAgX3RvYXN0UGx1cyxcbiAgICAgIC4uLnRoaXMuX3RvYXN0cyxcbiAgICBdO1xuXG4gICAgdGhpcy5fdGVtcGxhdGUuaW5zdGFuY2UuaXRlbXMgPSB0aGlzLl90b2FzdHM7XG5cblx0ICByZXR1cm4gX3RvYXN0UGx1cztcbiAgfVxuXG4gIGNsb3NlKHRvYXN0OiBEYWZmVG9hc3QpOiB2b2lkIHtcbiAgICBpZih0aGlzLl9wYXJlbnRUb2FzdCAmJiB0aGlzLm9wdGlvbnMudXNlUGFyZW50KSB7XG4gICAgICB0aGlzLl9wYXJlbnRUb2FzdC5jbG9zZSh0b2FzdCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYoZGFmZlRvYXN0Q2hhbmdlc0ZvY3VzKHRvYXN0KSkge1xuICAgICAgdGhpcy5mb2N1c1N0YWNrLnBvcCgpO1xuICAgIH1cblxuXHQgIGNvbnN0IGluZGV4ID0gdGhpcy5fdG9hc3RzLmluZGV4T2YodG9hc3QpO1xuXHQgIGlmIChpbmRleCA9PT0gLTEpIHtcblx0ICAgIHRocm93IG5ldyBFcnJvcihcblx0ICAgICAgJ1RoZSBUb2FzdCB0aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIHJlbW92ZSBkb2VzIG5vdCBleGlzdC4nLFxuXHQgICAgKTtcblx0ICB9XG5cblx0ICB0aGlzLl90b2FzdHMgPSB0aGlzLl90b2FzdHMuZmlsdGVyKG0gPT4gbSAhPT0gdG9hc3QpO1xuICAgIHRoaXMuX3RlbXBsYXRlLmluc3RhbmNlLml0ZW1zID0gWy4uLnRoaXMuX3RvYXN0c107XG5cbiAgICAvLyBUaGlzIGN1cnJlbnRseSBvdmVycmlkZXMgdGhlIFwiOmxlYXZlXCIgYW5pbWF0aW9uIGFzIHdlIGN1cnJlbnRseVxuICAgIC8vIHJlbW92ZSB0aGUgYW5pbWF0aW5nIGVsZW1lbnQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlcmUgYXJlIG5vIG1vcmUgdG9hc3RzLFxuICAgIC8vIHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIGFuaW1hdGlvbiB0byBjb21wbGV0ZS5cbiAgICBpZih0aGlzLl90b2FzdHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX3RlbXBsYXRlLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl90ZW1wbGF0ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export const daffDefaultToastConfiguration = {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdG9hc3Qvc3JjL3RvYXN0L3RvYXN0LWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBMkIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYWZmVG9hc3RDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBkdXJhdGlvbiAoaW4gbWlsbGlzZWNvbmRzKSB0aGF0IGEgdG9hc3QgaXMgdmlzaWJsZSBiZWZvcmUgaXQncyBkaXNtaXNzZWQuXG4gICAqL1xuICBkdXJhdGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGRhZmZEZWZhdWx0VG9hc3RDb25maWd1cmF0aW9uOiBEYWZmVG9hc3RDb25maWd1cmF0aW9uID0ge307XG4iXX0=
@@ -0,0 +1,262 @@
1
+ import { animate, style, transition, trigger, } from '@angular/animations';
2
+ import { Input, ChangeDetectionStrategy, Component, ChangeDetectorRef, Inject, Output, EventEmitter, } from '@angular/core';
3
+ import { faTimes } from '@fortawesome/free-solid-svg-icons';
4
+ import { DAFF_TOAST_OPTIONS, } from '../options/daff-toast-options';
5
+ import { DaffToastPositionService } from '../service/position.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../service/position.service";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "@daffodil/design/button";
10
+ import * as i4 from "@fortawesome/angular-fontawesome";
11
+ import * as i5 from "./toast.component";
12
+ import * as i6 from "../toast-actions/toast-actions.directive";
13
+ import * as i7 from "../toast-title/toast-title.directive";
14
+ import * as i8 from "../toast-message/toast-message.directive";
15
+ export class DaffToastTemplateComponent {
16
+ constructor(cd, options, toastPosition) {
17
+ this.cd = cd;
18
+ this.options = options;
19
+ this.toastPosition = toastPosition;
20
+ this.faTimes = faTimes;
21
+ this._items = [];
22
+ this.closeToast = new EventEmitter();
23
+ }
24
+ onCloseToast(event) {
25
+ this.closeToast.emit();
26
+ }
27
+ get slideAnimation() {
28
+ switch (this.toastPosition.config.horizontal + '-' + this.toastPosition.config.vertical) {
29
+ case 'left-top':
30
+ case 'left-bottom':
31
+ return {
32
+ value: 0,
33
+ params: {
34
+ startX: '-100%',
35
+ endX: '0',
36
+ startY: '0',
37
+ endY: '0',
38
+ },
39
+ };
40
+ case 'right-top':
41
+ case 'right-bottom':
42
+ return {
43
+ value: 0,
44
+ params: {
45
+ startX: '100%',
46
+ endX: '0',
47
+ startY: '0',
48
+ endY: '0',
49
+ },
50
+ };
51
+ case 'center-top':
52
+ return {
53
+ value: 0,
54
+ params: {
55
+ startX: '0',
56
+ endX: '0',
57
+ startY: '-100%',
58
+ endY: '0',
59
+ },
60
+ };
61
+ case 'center-bottom':
62
+ return {
63
+ value: 0,
64
+ params: {
65
+ startX: '0',
66
+ endX: '0',
67
+ startY: '100%',
68
+ endY: '0',
69
+ },
70
+ };
71
+ }
72
+ }
73
+ get items() {
74
+ return this._items;
75
+ }
76
+ set items(value) {
77
+ this._items = value;
78
+ this.cd.markForCheck();
79
+ }
80
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DAFF_TOAST_OPTIONS }, { token: i1.DaffToastPositionService }], target: i0.ɵɵFactoryTarget.Component }); }
81
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: DaffToastTemplateComponent, selector: "ng-component", inputs: { items: "items" }, outputs: { closeToast: "closeToast" }, ngImport: i0, template: `
82
+ <daff-toast
83
+ *ngFor="let item of items | slice:0:3"
84
+ [toast]="item"
85
+ [status]="item.status ?? null"
86
+ (closeToast)="item.dismiss()"
87
+ [@slideIn]="slideAnimation"
88
+ [attr.role]="item.actions ? 'alertdialog' : undefined"
89
+ [attr.aria-labelledby]="item.actions ? item.title : undefined"
90
+ [attr.aria-describedby]="item.actions ? item.message : undefined">
91
+ <div daffToastTitle>{{ item.title }}</div>
92
+ <div daffToastMessage>{{ item.message }}</div>
93
+ <div daffToastActions *ngIf="item.actions">
94
+ <ng-container *ngFor="let action of item.actions">
95
+ <ng-container *ngTemplateOutlet="button;context:{ action, item }"></ng-container>
96
+ </ng-container>
97
+ </div>
98
+ <button daff-icon-button color="theme-contrast"
99
+ *ngIf="item.dismissible"
100
+ aria-label="close button"
101
+ [attr.aria-hidden]="item.actions ? undefined : true"
102
+ (click)="onCloseToast(item.dismiss())">
103
+ <fa-icon [icon]="faTimes" size="sm" [fixedWidth]="true"></fa-icon>
104
+ </button>
105
+ </daff-toast>
106
+
107
+ <ng-template #button let-action="action" let-item="item">
108
+ <ng-container [ngSwitch]="action.type">
109
+ <button type="button" *ngSwitchDefault daff-button
110
+ [status]="action.status"
111
+ [color]="action.color"
112
+ [size]="action.size"
113
+ [attr.aria-label]="action.content"
114
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
115
+ {{ action.content }}
116
+ </button>
117
+ <button type="button" *ngSwitchCase="'stroked'" daff-stroked-button
118
+ [status]="action.status"
119
+ [color]="action.color"
120
+ [size]="action.size"
121
+ [attr.aria-label]="action.content"
122
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
123
+ {{ action.content }}
124
+ </button>
125
+ <button type="button" *ngSwitchCase="'raised'" daff-raised-button
126
+ [status]="action.status"
127
+ [color]="action.color"
128
+ [size]="action.size"
129
+ [attr.aria-label]="action.content"
130
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
131
+ {{ action.content }}
132
+ </button>
133
+ <button type="button" *ngSwitchCase="'flat'" daff-flat-button
134
+ [status]="action.status"
135
+ [color]="action.color"
136
+ [size]="action.size"
137
+ [attr.aria-label]="action.content"
138
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
139
+ {{ action.content }}
140
+ </button>
141
+ <button type="button" *ngSwitchCase="'underline'" daff-underline-button
142
+ [status]="action.status"
143
+ [color]="action.color"
144
+ [size]="action.size"
145
+ [attr.aria-label]="action.content"
146
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
147
+ {{ action.content }}
148
+ </button>
149
+ </ng-container>
150
+ </ng-template>
151
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.DaffButtonComponent, selector: "button[daff-button],button[daff-stroked-button],button[daff-raised-button],button[daff-flat-button],button[daff-icon-button],button[daff-underline-button],a[daff-button],a[daff-stroked-button],a[daff-raised-button],a[daff-flat-button],a[daff-icon-button],a[daff-underline-button]", inputs: ["color", "size", "status", "loading", "tabindex", "disabled"] }, { kind: "component", type: i4.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }, { kind: "component", type: i5.DaffToastComponent, selector: "daff-toast", inputs: ["status", "toast"] }, { kind: "directive", type: i6.DaffToastActionsDirective, selector: "[daffToastActions]" }, { kind: "directive", type: i7.DaffToastTitleDirective, selector: "[daffToastTitle]" }, { kind: "directive", type: i8.DaffToastMessageDirective, selector: "[daffToastMessage]" }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }], animations: [
152
+ trigger('slideIn', [
153
+ transition(':enter', [
154
+ style({ opacity: '0', transform: 'translate({{startX}}, {{startY}})' }),
155
+ animate('300ms ease-out', style({ opacity: '1', transform: 'translate({{endX}}, {{endY}})' })),
156
+ ], { params: {
157
+ startX: '0',
158
+ startY: '0',
159
+ endX: '0',
160
+ endY: '0',
161
+ } }),
162
+ ]),
163
+ ], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
164
+ }
165
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: DaffToastTemplateComponent, decorators: [{
166
+ type: Component,
167
+ args: [{
168
+ changeDetection: ChangeDetectionStrategy.OnPush,
169
+ template: `
170
+ <daff-toast
171
+ *ngFor="let item of items | slice:0:3"
172
+ [toast]="item"
173
+ [status]="item.status ?? null"
174
+ (closeToast)="item.dismiss()"
175
+ [@slideIn]="slideAnimation"
176
+ [attr.role]="item.actions ? 'alertdialog' : undefined"
177
+ [attr.aria-labelledby]="item.actions ? item.title : undefined"
178
+ [attr.aria-describedby]="item.actions ? item.message : undefined">
179
+ <div daffToastTitle>{{ item.title }}</div>
180
+ <div daffToastMessage>{{ item.message }}</div>
181
+ <div daffToastActions *ngIf="item.actions">
182
+ <ng-container *ngFor="let action of item.actions">
183
+ <ng-container *ngTemplateOutlet="button;context:{ action, item }"></ng-container>
184
+ </ng-container>
185
+ </div>
186
+ <button daff-icon-button color="theme-contrast"
187
+ *ngIf="item.dismissible"
188
+ aria-label="close button"
189
+ [attr.aria-hidden]="item.actions ? undefined : true"
190
+ (click)="onCloseToast(item.dismiss())">
191
+ <fa-icon [icon]="faTimes" size="sm" [fixedWidth]="true"></fa-icon>
192
+ </button>
193
+ </daff-toast>
194
+
195
+ <ng-template #button let-action="action" let-item="item">
196
+ <ng-container [ngSwitch]="action.type">
197
+ <button type="button" *ngSwitchDefault daff-button
198
+ [status]="action.status"
199
+ [color]="action.color"
200
+ [size]="action.size"
201
+ [attr.aria-label]="action.content"
202
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
203
+ {{ action.content }}
204
+ </button>
205
+ <button type="button" *ngSwitchCase="'stroked'" daff-stroked-button
206
+ [status]="action.status"
207
+ [color]="action.color"
208
+ [size]="action.size"
209
+ [attr.aria-label]="action.content"
210
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
211
+ {{ action.content }}
212
+ </button>
213
+ <button type="button" *ngSwitchCase="'raised'" daff-raised-button
214
+ [status]="action.status"
215
+ [color]="action.color"
216
+ [size]="action.size"
217
+ [attr.aria-label]="action.content"
218
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
219
+ {{ action.content }}
220
+ </button>
221
+ <button type="button" *ngSwitchCase="'flat'" daff-flat-button
222
+ [status]="action.status"
223
+ [color]="action.color"
224
+ [size]="action.size"
225
+ [attr.aria-label]="action.content"
226
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
227
+ {{ action.content }}
228
+ </button>
229
+ <button type="button" *ngSwitchCase="'underline'" daff-underline-button
230
+ [status]="action.status"
231
+ [color]="action.color"
232
+ [size]="action.size"
233
+ [attr.aria-label]="action.content"
234
+ (click)="action.eventEmitter?.emit({ event: $event, action})">
235
+ {{ action.content }}
236
+ </button>
237
+ </ng-container>
238
+ </ng-template>
239
+ `,
240
+ animations: [
241
+ trigger('slideIn', [
242
+ transition(':enter', [
243
+ style({ opacity: '0', transform: 'translate({{startX}}, {{startY}})' }),
244
+ animate('300ms ease-out', style({ opacity: '1', transform: 'translate({{endX}}, {{endY}})' })),
245
+ ], { params: {
246
+ startX: '0',
247
+ startY: '0',
248
+ endX: '0',
249
+ endY: '0',
250
+ } }),
251
+ ]),
252
+ ],
253
+ }]
254
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
255
+ type: Inject,
256
+ args: [DAFF_TOAST_OPTIONS]
257
+ }] }, { type: i1.DaffToastPositionService }], propDecorators: { closeToast: [{
258
+ type: Output
259
+ }], items: [{
260
+ type: Input
261
+ }] } });
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9kZXNpZ24vdG9hc3Qvc3JjL3RvYXN0L3RvYXN0LXRlbXBsYXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsT0FBTyxFQUNQLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNMLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHNUQsT0FBTyxFQUVMLGtCQUFrQixHQUNuQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7O0FBMEZ2RSxNQUFNLE9BQU8sMEJBQTBCO0lBS3JDLFlBQ1UsRUFBcUIsRUFFckIsT0FBeUIsRUFDekIsYUFBdUM7UUFIdkMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFFckIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQTBCO1FBUmpELFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFVixXQUFNLEdBQWdCLEVBQUUsQ0FBQztRQVN2QixlQUFVLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFGMUQsQ0FBQztJQUlMLFlBQVksQ0FBQyxLQUFZO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixRQUFRLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFD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OzZCQUMvRixFQUNELEVBQUUsTUFBTSxFQUFFO29DQUNSLE1BQU0sRUFBRSxHQUFHO29DQUNYLE1BQU0sRUFBRSxHQUFHO29DQUNYLElBQUksRUFBRSxHQUFHO29DQUNULElBQUksRUFBRSxHQUFHO2lDQUNWLEVBQUUsQ0FBQzt5QkFDTCxDQUFDO3FCQUNIO2lCQUNGOzswQkFRSSxNQUFNOzJCQUFDLGtCQUFrQjtnRkFLbEIsVUFBVTtzQkFBbkIsTUFBTTtnQkF3REgsS0FBSztzQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYW5pbWF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgSW5wdXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBJbmplY3QsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZhVGltZXMgfSBmcm9tICdAZm9ydGF3ZXNvbWUvZnJlZS1zb2xpZC1zdmctaWNvbnMnO1xuXG5pbXBvcnQgeyBEYWZmVG9hc3QgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3RvYXN0JztcbmltcG9ydCB7XG4gIERhZmZUb2FzdE9wdGlvbnMsXG4gIERBRkZfVE9BU1RfT1BUSU9OUyxcbn0gZnJvbSAnLi4vb3B0aW9ucy9kYWZmLXRvYXN0LW9wdGlvbnMnO1xuaW1wb3J0IHsgRGFmZlRvYXN0UG9zaXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZS9wb3NpdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYWZmLXRvYXN0XG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IHNsaWNlOjA6M1wiXG4gICAgICBbdG9hc3RdPVwiaXRlbVwiXG4gICAgICBbc3RhdHVzXT1cIml0ZW0uc3RhdHVzID8/IG51bGxcIlxuICAgICAgKGNsb3NlVG9hc3QpPVwiaXRlbS5kaXNtaXNzKClcIlxuICAgICAgW0BzbGlkZUluXT1cInNsaWRlQW5pbWF0aW9uXCJcbiAgICAgIFthdHRyLnJvbGVdPVwiaXRlbS5hY3Rpb25zID8gJ2FsZXJ0ZGlhbG9nJyA6IHVuZGVmaW5lZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXRlbS5hY3Rpb25zID8gaXRlbS50aXRsZSA6IHVuZGVmaW5lZFwiXG4gICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYWN0aW9ucyA/IGl0ZW0ubWVzc2FnZSA6IHVuZGVmaW5lZFwiPlxuICAgICAgPGRpdiBkYWZmVG9hc3RUaXRsZT57eyBpdGVtLnRpdGxlIH19PC9kaXY+XG4gICAgICA8ZGl2IGRhZmZUb2FzdE1lc3NhZ2U+e3sgaXRlbS5tZXNzYWdlIH19PC9kaXY+XG4gICAgICA8ZGl2IGRhZmZUb2FzdEFjdGlvbnMgKm5nSWY9XCJpdGVtLmFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGl0ZW0uYWN0aW9uc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b247Y29udGV4dDp7IGFjdGlvbiwgaXRlbSB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGRhZmYtaWNvbi1idXR0b24gY29sb3I9XCJ0aGVtZS1jb250cmFzdFwiXG4gICAgICAgICpuZ0lmPVwiaXRlbS5kaXNtaXNzaWJsZVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJjbG9zZSBidXR0b25cIlxuICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJpdGVtLmFjdGlvbnMgPyB1bmRlZmluZWQgOiB0cnVlXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VUb2FzdChpdGVtLmRpc21pc3MoKSlcIj5cbiAgICAgICAgICA8ZmEtaWNvbiBbaWNvbl09XCJmYVRpbWVzXCIgc2l6ZT1cInNtXCIgW2ZpeGVkV2lkdGhdPVwidHJ1ZVwiPjwvZmEtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGFmZi10b2FzdD5cblxuICAgIDxuZy10ZW1wbGF0ZSAjYnV0dG9uIGxldC1hY3Rpb249XCJhY3Rpb25cIiBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvbi50eXBlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ1N3aXRjaERlZmF1bHQgZGFmZi1idXR0b25cbiAgICAgICAgICBbc3RhdHVzXT1cImFjdGlvbi5zdGF0dXNcIlxuICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgICAgIFtzaXplXT1cImFjdGlvbi5zaXplXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi5jb250ZW50XCJcbiAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmV2ZW50RW1pdHRlcj8uZW1pdCh7IGV2ZW50OiAkZXZlbnQsIGFjdGlvbn0pXCI+XG4gICAgICAgICAgICB7eyBhY3Rpb24uY29udGVudCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nU3dpdGNoQ2FzZT1cIidzdHJva2VkJ1wiIGRhZmYtc3Ryb2tlZC1idXR0b25cbiAgICAgICAgICBbc3RhdHVzXT1cImFjdGlvbi5zdGF0dXNcIlxuICAgICAgICAgIFtjb2xvcl09XCJhY3Rpb24uY29sb3JcIlxuICAgICAgICAgIFtzaXplXT1cImFjdGlvbi5zaXplXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFjdGlvbi5jb250ZW50XCJcbiAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uLmV2ZW50RW1pdHRlcj8uZW1pdCh7IGV2ZW50OiAkZXZlbnQsIGFjdGlvbn0pXCI+XG4gICAgICAgICAgICB7eyBhY3Rpb24uY29udGVudCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nU3dpdGNoQ2FzZT1cIidyYWlzZWQnXCIgZGFmZi1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgW3N0YXR1c109XCJhY3Rpb24uc3RhdHVzXCJcbiAgICAgICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yXCJcbiAgICAgICAgICBbc2l6ZV09XCJhY3Rpb24uc2l6ZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3Rpb24uY29udGVudFwiXG4gICAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5ldmVudEVtaXR0ZXI/LmVtaXQoeyBldmVudDogJGV2ZW50LCBhY3Rpb259KVwiPlxuICAgICAgICAgICAge3sgYWN0aW9uLmNvbnRlbnQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ1N3aXRjaENhc2U9XCInZmxhdCdcIiBkYWZmLWZsYXQtYnV0dG9uXG4gICAgICAgICAgW3N0YXR1c109XCJhY3Rpb24uc3RhdHVzXCJcbiAgICAgICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yXCJcbiAgICAgICAgICBbc2l6ZV09XCJhY3Rpb24uc2l6ZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3Rpb24uY29udGVudFwiXG4gICAgICAgICAgKGNsaWNrKT1cImFjdGlvbi5ldmVudEVtaXR0ZXI/LmVtaXQoeyBldmVudDogJGV2ZW50LCBhY3Rpb259KVwiPlxuICAgICAgICAgICAge3sgYWN0aW9uLmNvbnRlbnQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ1N3aXRjaENhc2U9XCIndW5kZXJsaW5lJ1wiIGRhZmYtdW5kZXJsaW5lLWJ1dHRvblxuICAgICAgICAgIFtzdGF0dXNdPVwiYWN0aW9uLnN0YXR1c1wiXG4gICAgICAgICAgW2NvbG9yXT1cImFjdGlvbi5jb2xvclwiXG4gICAgICAgICAgW3NpemVdPVwiYWN0aW9uLnNpemVcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aW9uLmNvbnRlbnRcIlxuICAgICAgICAgIChjbGljayk9XCJhY3Rpb24uZXZlbnRFbWl0dGVyPy5lbWl0KHsgZXZlbnQ6ICRldmVudCwgYWN0aW9ufSlcIj5cbiAgICAgICAgICAgIHt7IGFjdGlvbi5jb250ZW50IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NsaWRlSW4nLCBbXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIHN0eWxlKHsgb3BhY2l0eTogJzAnLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoe3tzdGFydFh9fSwge3tzdGFydFl9fSknIH0pLFxuICAgICAgICBhbmltYXRlKCczMDBtcyBlYXNlLW91dCcsIHN0eWxlKHsgb3BhY2l0eTogJzEnLCB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoe3tlbmRYfX0sIHt7ZW5kWX19KScgfSkpLFxuICAgICAgXSxcbiAgICAgIHsgcGFyYW1zOiB7XG4gICAgICAgIHN0YXJ0WDogJzAnLFxuICAgICAgICBzdGFydFk6ICcwJyxcbiAgICAgICAgZW5kWDogJzAnLFxuICAgICAgICBlbmRZOiAnMCcsXG4gICAgICB9IH0pLFxuICAgIF0pLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEYWZmVG9hc3RUZW1wbGF0ZUNvbXBvbmVudCB7XG4gIGZhVGltZXMgPSBmYVRpbWVzO1xuXG4gIHByaXZhdGUgX2l0ZW1zOiBEYWZmVG9hc3RbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoREFGRl9UT0FTVF9PUFRJT05TKVxuICAgIHByaXZhdGUgb3B0aW9uczogRGFmZlRvYXN0T3B0aW9ucyxcbiAgICBwcml2YXRlIHRvYXN0UG9zaXRpb246IERhZmZUb2FzdFBvc2l0aW9uU2VydmljZSxcbiAgKSB7IH1cblxuICBAT3V0cHV0KCkgY2xvc2VUb2FzdDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIG9uQ2xvc2VUb2FzdChldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNsb3NlVG9hc3QuZW1pdCgpO1xuICB9XG5cbiAgZ2V0IHNsaWRlQW5pbWF0aW9uKCk6IGFueSB7XG4gICAgc3dpdGNoICh0aGlzLnRvYXN0UG9zaXRpb24uY29uZmlnLmhvcml6b250YWwgKyAnLScgKyB0aGlzLnRvYXN0UG9zaXRpb24uY29uZmlnLnZlcnRpY2FsKSB7XG4gICAgICBjYXNlICdsZWZ0LXRvcCc6XG4gICAgICBjYXNlICdsZWZ0LWJvdHRvbSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBzdGFydFg6ICctMTAwJScsXG4gICAgICAgICAgICBlbmRYOiAnMCcsXG4gICAgICAgICAgICBzdGFydFk6ICcwJyxcbiAgICAgICAgICAgIGVuZFk6ICcwJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICAgICAgY2FzZSAncmlnaHQtdG9wJzpcbiAgICAgIGNhc2UgJ3JpZ2h0LWJvdHRvbSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBzdGFydFg6ICcxMDAlJyxcbiAgICAgICAgICAgIGVuZFg6ICcwJyxcbiAgICAgICAgICAgIHN0YXJ0WTogJzAnLFxuICAgICAgICAgICAgZW5kWTogJzAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ2NlbnRlci10b3AnOlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgc3RhcnRYOiAnMCcsXG4gICAgICAgICAgICBlbmRYOiAnMCcsXG4gICAgICAgICAgICBzdGFydFk6ICctMTAwJScsXG4gICAgICAgICAgICBlbmRZOiAnMCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnY2VudGVyLWJvdHRvbSc6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdmFsdWU6IDAsXG4gICAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgICBzdGFydFg6ICcwJyxcbiAgICAgICAgICAgIGVuZFg6ICcwJyxcbiAgICAgICAgICAgIHN0YXJ0WTogJzEwMCUnLFxuICAgICAgICAgICAgZW5kWTogJzAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgQElucHV0KClcbiAgZ2V0IGl0ZW1zKCk6IERhZmZUb2FzdFtdIHtcbiAgICByZXR1cm4gdGhpcy5faXRlbXM7XG4gIH1cbiAgc2V0IGl0ZW1zKHZhbHVlOiBEYWZmVG9hc3RbXSkge1xuICAgIHRoaXMuX2l0ZW1zID0gdmFsdWU7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19