@daffodil/design 0.92.3-rc.2 → 0.93.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. package/accordion/README.md +4 -4
  2. package/breadcrumb/README.md +13 -35
  3. package/button/README.md +28 -50
  4. package/card/README.md +8 -22
  5. package/card/src/card/stroked/stroked-theme.scss +8 -1
  6. package/card/src/card-base-theme.scss +12 -1
  7. package/container/README.md +4 -26
  8. package/fesm2022/daffodil-design-accordion.mjs +15 -15
  9. package/fesm2022/daffodil-design-accordion.mjs.map +1 -1
  10. package/fesm2022/daffodil-design-article.mjs +30 -30
  11. package/fesm2022/daffodil-design-article.mjs.map +1 -1
  12. package/fesm2022/daffodil-design-breadcrumb.mjs +20 -20
  13. package/fesm2022/daffodil-design-breadcrumb.mjs.map +1 -1
  14. package/fesm2022/daffodil-design-button.mjs +37 -49
  15. package/fesm2022/daffodil-design-button.mjs.map +1 -1
  16. package/fesm2022/daffodil-design-callout.mjs +22 -22
  17. package/fesm2022/daffodil-design-callout.mjs.map +1 -1
  18. package/fesm2022/daffodil-design-card.mjs +31 -31
  19. package/fesm2022/daffodil-design-card.mjs.map +1 -1
  20. package/fesm2022/daffodil-design-checkbox.mjs +13 -13
  21. package/fesm2022/daffodil-design-checkbox.mjs.map +1 -1
  22. package/fesm2022/daffodil-design-container.mjs +7 -7
  23. package/fesm2022/daffodil-design-container.mjs.map +1 -1
  24. package/fesm2022/daffodil-design-form-field.mjs +13 -12
  25. package/fesm2022/daffodil-design-form-field.mjs.map +1 -1
  26. package/fesm2022/daffodil-design-form.mjs +9 -9
  27. package/fesm2022/daffodil-design-form.mjs.map +1 -1
  28. package/fesm2022/daffodil-design-hero.mjs +22 -22
  29. package/fesm2022/daffodil-design-hero.mjs.map +1 -1
  30. package/fesm2022/daffodil-design-image.mjs +8 -8
  31. package/fesm2022/daffodil-design-image.mjs.map +1 -1
  32. package/fesm2022/daffodil-design-input.mjs +12 -11
  33. package/fesm2022/daffodil-design-input.mjs.map +1 -1
  34. package/fesm2022/daffodil-design-link-set.mjs +16 -16
  35. package/fesm2022/daffodil-design-link-set.mjs.map +1 -1
  36. package/fesm2022/daffodil-design-list.mjs +20 -17
  37. package/fesm2022/daffodil-design-list.mjs.map +1 -1
  38. package/fesm2022/daffodil-design-loading-icon.mjs +7 -7
  39. package/fesm2022/daffodil-design-loading-icon.mjs.map +1 -1
  40. package/fesm2022/daffodil-design-media-gallery.mjs +13 -13
  41. package/fesm2022/daffodil-design-media-gallery.mjs.map +1 -1
  42. package/fesm2022/daffodil-design-menu.mjs +20 -20
  43. package/fesm2022/daffodil-design-menu.mjs.map +1 -1
  44. package/fesm2022/daffodil-design-modal.mjs +32 -26
  45. package/fesm2022/daffodil-design-modal.mjs.map +1 -1
  46. package/fesm2022/daffodil-design-native-select.mjs +5 -3
  47. package/fesm2022/daffodil-design-native-select.mjs.map +1 -1
  48. package/fesm2022/daffodil-design-navbar.mjs +9 -9
  49. package/fesm2022/daffodil-design-navbar.mjs.map +1 -1
  50. package/fesm2022/daffodil-design-notification.mjs +16 -16
  51. package/fesm2022/daffodil-design-notification.mjs.map +1 -1
  52. package/fesm2022/daffodil-design-paginator.mjs +8 -8
  53. package/fesm2022/daffodil-design-paginator.mjs.map +1 -1
  54. package/fesm2022/daffodil-design-progress-bar.mjs +10 -10
  55. package/fesm2022/daffodil-design-progress-bar.mjs.map +1 -1
  56. package/fesm2022/daffodil-design-quantity-field.mjs +13 -13
  57. package/fesm2022/daffodil-design-quantity-field.mjs.map +1 -1
  58. package/fesm2022/daffodil-design-radio.mjs +16 -16
  59. package/fesm2022/daffodil-design-radio.mjs.map +1 -1
  60. package/fesm2022/daffodil-design-select.mjs +11 -11
  61. package/fesm2022/daffodil-design-select.mjs.map +1 -1
  62. package/fesm2022/daffodil-design-sidebar.mjs +35 -29
  63. package/fesm2022/daffodil-design-sidebar.mjs.map +1 -1
  64. package/fesm2022/daffodil-design-spinner.mjs +7 -7
  65. package/fesm2022/daffodil-design-spinner.mjs.map +1 -1
  66. package/fesm2022/daffodil-design-switch.mjs +3 -3
  67. package/fesm2022/daffodil-design-switch.mjs.map +1 -1
  68. package/fesm2022/daffodil-design-tabs.mjs +17 -25
  69. package/fesm2022/daffodil-design-tabs.mjs.map +1 -1
  70. package/fesm2022/daffodil-design-tag.mjs +20 -20
  71. package/fesm2022/daffodil-design-tag.mjs.map +1 -1
  72. package/fesm2022/daffodil-design-testing.mjs +19 -0
  73. package/fesm2022/daffodil-design-testing.mjs.map +1 -0
  74. package/fesm2022/daffodil-design-text-snippet.mjs +3 -3
  75. package/fesm2022/daffodil-design-text-snippet.mjs.map +1 -1
  76. package/fesm2022/daffodil-design-textarea.mjs +3 -3
  77. package/fesm2022/daffodil-design-textarea.mjs.map +1 -1
  78. package/fesm2022/daffodil-design-toast.mjs +21 -21
  79. package/fesm2022/daffodil-design-toast.mjs.map +1 -1
  80. package/fesm2022/daffodil-design-tree.mjs +27 -25
  81. package/fesm2022/daffodil-design-tree.mjs.map +1 -1
  82. package/fesm2022/daffodil-design-youtube-player.mjs +22 -11
  83. package/fesm2022/daffodil-design-youtube-player.mjs.map +1 -1
  84. package/fesm2022/daffodil-design.mjs +110 -149
  85. package/fesm2022/daffodil-design.mjs.map +1 -1
  86. package/form/README.md +15 -6
  87. package/hero/README.md +14 -49
  88. package/image/README.md +6 -29
  89. package/input/README.md +8 -34
  90. package/list/README.md +29 -55
  91. package/list/src/list-theme.scss +16 -2
  92. package/media-gallery/README.md +36 -43
  93. package/menu/README.md +24 -55
  94. package/menu/src/menu-theme.scss +12 -2
  95. package/modal/README.md +15 -45
  96. package/native-select/README.md +8 -6
  97. package/navbar/README.md +18 -27
  98. package/notification/README.md +14 -49
  99. package/package.json +1 -1
  100. package/paginator/README.md +11 -31
  101. package/paginator/src/paginator-theme.scss +16 -2
  102. package/progress-bar/README.md +14 -41
  103. package/scss/global.scss +21 -2
  104. package/select/README.md +5 -6
  105. package/select/src/select-theme.scss +10 -2
  106. package/sidebar/README.md +1 -1
  107. package/spinner/README.md +15 -9
  108. package/switch/README.md +17 -6
  109. package/tabs/README.md +39 -39
  110. package/tag/README.md +24 -28
  111. package/textarea/README.md +9 -7
  112. package/toast/README.md +55 -52
  113. package/tree/README.md +12 -43
  114. package/tree/src/tree-theme.scss +8 -4
  115. package/{accordion/index.d.ts → types/daffodil-design-accordion.d.ts} +1 -1
  116. package/{button/index.d.ts → types/daffodil-design-button.d.ts} +7 -8
  117. package/{input/index.d.ts → types/daffodil-design-input.d.ts} +4 -1
  118. package/{list/index.d.ts → types/daffodil-design-list.d.ts} +4 -1
  119. package/{menu/index.d.ts → types/daffodil-design-menu.d.ts} +3 -3
  120. package/{modal/index.d.ts → types/daffodil-design-modal.d.ts} +11 -5
  121. package/{native-select/index.d.ts → types/daffodil-design-native-select.d.ts} +3 -1
  122. package/{sidebar/index.d.ts → types/daffodil-design-sidebar.d.ts} +9 -3
  123. package/{tabs/index.d.ts → types/daffodil-design-tabs.d.ts} +0 -6
  124. package/{tag/index.d.ts → types/daffodil-design-tag.d.ts} +9 -8
  125. package/types/daffodil-design-testing.d.ts +11 -0
  126. package/{tree/index.d.ts → types/daffodil-design-tree.d.ts} +2 -0
  127. package/{youtube-player/index.d.ts → types/daffodil-design-youtube-player.d.ts} +15 -0
  128. package/{index.d.ts → types/daffodil-design.d.ts} +17 -64
  129. /package/{article/index.d.ts → types/daffodil-design-article.d.ts} +0 -0
  130. /package/{breadcrumb/index.d.ts → types/daffodil-design-breadcrumb.d.ts} +0 -0
  131. /package/{callout/index.d.ts → types/daffodil-design-callout.d.ts} +0 -0
  132. /package/{card/index.d.ts → types/daffodil-design-card.d.ts} +0 -0
  133. /package/{checkbox/index.d.ts → types/daffodil-design-checkbox.d.ts} +0 -0
  134. /package/{container/index.d.ts → types/daffodil-design-container.d.ts} +0 -0
  135. /package/{form-field/index.d.ts → types/daffodil-design-form-field.d.ts} +0 -0
  136. /package/{form/index.d.ts → types/daffodil-design-form.d.ts} +0 -0
  137. /package/{hero/index.d.ts → types/daffodil-design-hero.d.ts} +0 -0
  138. /package/{image/index.d.ts → types/daffodil-design-image.d.ts} +0 -0
  139. /package/{link-set/index.d.ts → types/daffodil-design-link-set.d.ts} +0 -0
  140. /package/{loading-icon/index.d.ts → types/daffodil-design-loading-icon.d.ts} +0 -0
  141. /package/{media-gallery/index.d.ts → types/daffodil-design-media-gallery.d.ts} +0 -0
  142. /package/{navbar/index.d.ts → types/daffodil-design-navbar.d.ts} +0 -0
  143. /package/{notification/index.d.ts → types/daffodil-design-notification.d.ts} +0 -0
  144. /package/{paginator/index.d.ts → types/daffodil-design-paginator.d.ts} +0 -0
  145. /package/{progress-bar/index.d.ts → types/daffodil-design-progress-bar.d.ts} +0 -0
  146. /package/{quantity-field/index.d.ts → types/daffodil-design-quantity-field.d.ts} +0 -0
  147. /package/{radio/index.d.ts → types/daffodil-design-radio.d.ts} +0 -0
  148. /package/{select/index.d.ts → types/daffodil-design-select.d.ts} +0 -0
  149. /package/{spinner/index.d.ts → types/daffodil-design-spinner.d.ts} +0 -0
  150. /package/{switch/index.d.ts → types/daffodil-design-switch.d.ts} +0 -0
  151. /package/{text-snippet/index.d.ts → types/daffodil-design-text-snippet.d.ts} +0 -0
  152. /package/{textarea/index.d.ts → types/daffodil-design-textarea.d.ts} +0 -0
  153. /package/{toast/index.d.ts → types/daffodil-design-toast.d.ts} +0 -0
@@ -82,10 +82,10 @@ class DaffToastPositionService {
82
82
  setPosition(position) {
83
83
  this._position = position;
84
84
  }
85
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastPositionService, deps: [{ token: DAFF_TOAST_OPTIONS }, { token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
86
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastPositionService }); }
85
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastPositionService, deps: [{ token: DAFF_TOAST_OPTIONS }, { token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
86
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastPositionService }); }
87
87
  }
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastPositionService, decorators: [{
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastPositionService, decorators: [{
89
89
  type: Injectable
90
90
  }], ctorParameters: () => [{ type: undefined, decorators: [{
91
91
  type: Inject,
@@ -96,10 +96,10 @@ const daffDefaultToastConfiguration = {};
96
96
 
97
97
  /* eslint-disable quote-props */
98
98
  class DaffToastActionsDirective {
99
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
100
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffToastActionsDirective, isStandalone: true, selector: "[daffToastActions]", host: { classAttribute: "daff-toast__actions" }, ngImport: i0 }); }
99
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastActionsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
100
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DaffToastActionsDirective, isStandalone: true, selector: "[daffToastActions]", host: { classAttribute: "daff-toast__actions" }, ngImport: i0 }); }
101
101
  }
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastActionsDirective, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastActionsDirective, decorators: [{
103
103
  type: Directive,
104
104
  args: [{
105
105
  selector: '[daffToastActions]',
@@ -153,10 +153,10 @@ class DaffToastComponent {
153
153
  this._focusTrap.destroy();
154
154
  }
155
155
  }
156
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ConfigurableFocusTrapFactory }, { token: i2.DaffFocusStackService }], target: i0.ɵɵFactoryTarget.Component }); }
157
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DaffToastComponent, isStandalone: true, selector: "daff-toast", inputs: { toast: "toast" }, host: { listeners: { "keydown.escape": "onEscape()" }, classAttribute: "daff-toast" }, queries: [{ propertyName: "_actions", first: true, predicate: DaffToastActionsDirective, descendants: true }, { propertyName: "_prefix", first: true, predicate: DaffPrefixDirective, descendants: true }], hostDirectives: [{ directive: i2.DaffArticleEncapsulatedDirective }, { directive: i2.DaffStatusableDirective, inputs: ["status", "status"] }], ngImport: i0, template: "@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-toast__details\">\n <div class=\"daff-toast__content\">\n <ng-content select=\"[daffToastTitle]\"></ng-content>\n <ng-content select=\"[daffToastMessage]\"></ng-content>\n </div>\n <ng-content select=\"[daffToastActions]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".daff-toast{display:flex;border-radius:.25rem;font-size:1rem;line-height:1.5rem;position:relative;min-width:15rem;max-width:90vw}@media(min-width:480px){.daff-toast{max-width:22rem}}.daff-toast+div+.daff-toast{margin-top:.75rem}.daff-toast+div+div+.daff-toast{margin-top:.75rem}.daff-toast+.daff-toast{margin-top:.75rem}.daff-toast:before{content:\"\";border-radius:.25rem 0 0 .25rem;position:absolute;height:100%;left:0;top:0;width:.25rem}.daff-toast .daff-prefix{padding:1rem 0 1rem 1rem}.daff-toast__close-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;color:currentColor;margin:0;min-height:3rem;height:3rem;min-width:3rem;width:3rem}.daff-toast__details{display:block;font-size:1rem;line-height:1.5rem;width:100%}.daff-toast__content{display:flex;flex-direction:column;gap:.25rem;padding:1rem}.daff-toast__title{font-weight:600}.daff-toast__message{font-weight:400;line-height:1.25rem}.daff-toast__actions{display:flex;align-items:center;gap:.5rem;min-height:3rem;padding:0 1rem 1rem}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInTop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.daff-toast.slide-in-left{animation:slideInLeft .3s ease-out}.daff-toast.slide-in-right{animation:slideInRight .3s ease-out}.daff-toast.slide-in-top{animation:slideInTop .3s ease-out}.daff-toast.slide-in-bottom{animation:slideInBottom .3s ease-out}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
156
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.ConfigurableFocusTrapFactory }, { token: i2.DaffFocusStackService }], target: i0.ɵɵFactoryTarget.Component }); }
157
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffToastComponent, isStandalone: true, selector: "daff-toast", inputs: { toast: "toast" }, host: { listeners: { "keydown.escape": "onEscape()" }, classAttribute: "daff-toast" }, queries: [{ propertyName: "_actions", first: true, predicate: DaffToastActionsDirective, descendants: true }, { propertyName: "_prefix", first: true, predicate: DaffPrefixDirective, descendants: true }], hostDirectives: [{ directive: i2.DaffArticleEncapsulatedDirective }, { directive: i2.DaffStatusableDirective, inputs: ["status", "status"] }], ngImport: i0, template: "@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-toast__details\">\n <div class=\"daff-toast__content\">\n <ng-content select=\"[daffToastTitle]\"></ng-content>\n <ng-content select=\"[daffToastMessage]\"></ng-content>\n </div>\n <ng-content select=\"[daffToastActions]\"></ng-content>\n</div>\n<ng-content></ng-content>\n", styles: [".daff-toast{display:flex;border-radius:.25rem;font-size:1rem;line-height:1.5rem;position:relative;min-width:15rem;max-width:90vw}@media(min-width:480px){.daff-toast{max-width:22rem}}.daff-toast+div+.daff-toast{margin-top:.75rem}.daff-toast+div+div+.daff-toast{margin-top:.75rem}.daff-toast+.daff-toast{margin-top:.75rem}.daff-toast:before{content:\"\";border-radius:.25rem 0 0 .25rem;position:absolute;height:100%;left:0;top:0;width:.25rem}.daff-toast .daff-prefix{padding:1rem 0 1rem 1rem}.daff-toast__close-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;appearance:none;background:none;border:none;color:currentColor;margin:0;min-height:3rem;height:3rem;min-width:3rem;width:3rem}.daff-toast__details{display:block;font-size:1rem;line-height:1.5rem;width:100%}.daff-toast__content{display:flex;flex-direction:column;gap:.25rem;padding:1rem}.daff-toast__title{font-weight:600}.daff-toast__message{font-weight:400;line-height:1.25rem}.daff-toast__actions{display:flex;align-items:center;gap:.5rem;min-height:3rem;padding:0 1rem 1rem}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideInTop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.daff-toast.slide-in-left{animation:slideInLeft .3s ease-out}.daff-toast.slide-in-right{animation:slideInRight .3s ease-out}.daff-toast.slide-in-top{animation:slideInTop .3s ease-out}.daff-toast.slide-in-bottom{animation:slideInBottom .3s ease-out}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
158
158
  }
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastComponent, decorators: [{
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastComponent, decorators: [{
160
160
  type: Component,
161
161
  args: [{ selector: 'daff-toast', hostDirectives: [
162
162
  { directive: DaffArticleEncapsulatedDirective },
@@ -180,10 +180,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
180
180
 
181
181
  /* eslint-disable quote-props */
182
182
  class DaffToastMessageDirective {
183
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastMessageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
184
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffToastMessageDirective, isStandalone: true, selector: "[daffToastMessage]", host: { classAttribute: "daff-toast__message" }, ngImport: i0 }); }
183
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastMessageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
184
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DaffToastMessageDirective, isStandalone: true, selector: "[daffToastMessage]", host: { classAttribute: "daff-toast__message" }, ngImport: i0 }); }
185
185
  }
186
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastMessageDirective, decorators: [{
186
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastMessageDirective, decorators: [{
187
187
  type: Directive,
188
188
  args: [{
189
189
  selector: '[daffToastMessage]',
@@ -195,10 +195,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
195
195
 
196
196
  /* eslint-disable quote-props */
197
197
  class DaffToastTitleDirective {
198
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
199
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.18", type: DaffToastTitleDirective, isStandalone: true, selector: "[daffToastTitle]", host: { classAttribute: "daff-toast__title" }, ngImport: i0 }); }
198
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastTitleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
199
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DaffToastTitleDirective, isStandalone: true, selector: "[daffToastTitle]", host: { classAttribute: "daff-toast__title" }, ngImport: i0 }); }
200
200
  }
201
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastTitleDirective, decorators: [{
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastTitleDirective, decorators: [{
202
202
  type: Directive,
203
203
  args: [{
204
204
  selector: '[daffToastTitle]',
@@ -244,8 +244,8 @@ class DaffToastTemplateComponent {
244
244
  this._items = value;
245
245
  this.cd.markForCheck();
246
246
  }
247
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DAFF_TOAST_OPTIONS }, { token: DaffToastPositionService }], target: i0.ɵɵFactoryTarget.Component }); }
248
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DaffToastTemplateComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, outputs: { closeToast: "closeToast" }, ngImport: i0, template: `
247
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastTemplateComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: DAFF_TOAST_OPTIONS }, { token: DaffToastPositionService }], target: i0.ɵɵFactoryTarget.Component }); }
248
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffToastTemplateComponent, isStandalone: true, selector: "ng-component", inputs: { items: "items" }, outputs: { closeToast: "closeToast" }, ngImport: i0, template: `
249
249
  @for (item of items | slice:0:3; track item) {
250
250
  <daff-toast
251
251
  [toast]="item"
@@ -321,7 +321,7 @@ class DaffToastTemplateComponent {
321
321
  </ng-template>
322
322
  `, isInline: true, dependencies: [{ kind: "component", type: i2$1.DaffButtonComponent, selector: "button[daff-button],a[daff-button]", inputs: ["elevated"] }, { kind: "component", type: i2$1.DaffFlatButtonComponent, selector: "button[daff-flat-button],a[daff-flat-button]" }, { kind: "component", type: i2$1.DaffIconButtonComponent, selector: "button[daff-icon-button],a[daff-icon-button]" }, { kind: "component", type: i2$1.DaffStrokedButtonComponent, selector: "button[daff-stroked-button],a[daff-stroked-button]", inputs: ["elevated"] }, { kind: "component", type: i2$1.DaffUnderlineButtonComponent, selector: "button[daff-underline-button],a[daff-underline-button]" }, { kind: "component", type: DaffToastComponent, selector: "daff-toast", inputs: ["toast"] }, { kind: "directive", type: DaffToastActionsDirective, selector: "[daffToastActions]" }, { kind: "directive", type: DaffToastTitleDirective, selector: "[daffToastTitle]" }, { kind: "directive", type: DaffToastMessageDirective, selector: "[daffToastMessage]" }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"], outputs: ["iconChange", "titleChange", "animationChange", "maskChange", "flipChange", "sizeChange", "pullChange", "borderChange", "inverseChange", "symbolChange", "rotateChange", "fixedWidthChange", "transformChange", "a11yRoleChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: SlicePipe, name: "slice" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
323
323
  }
324
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastTemplateComponent, decorators: [{
324
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastTemplateComponent, decorators: [{
325
325
  type: Component,
326
326
  args: [{
327
327
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -563,10 +563,10 @@ class DaffToastService {
563
563
  this._template = undefined;
564
564
  }
565
565
  }
566
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastService, deps: [{ token: i1$2.Overlay }, { token: DAFF_TOAST_OPTIONS }, { token: DaffToastService, optional: true, skipSelf: true }, { token: i1.BreakpointObserver }, { token: DaffToastPositionService }, { token: i2.DaffFocusStackService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
567
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastService }); }
566
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastService, deps: [{ token: i1$2.Overlay }, { token: DAFF_TOAST_OPTIONS }, { token: DaffToastService, optional: true, skipSelf: true }, { token: i1.BreakpointObserver }, { token: DaffToastPositionService }, { token: i2.DaffFocusStackService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
567
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastService }); }
568
568
  }
569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffToastService, decorators: [{
569
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffToastService, decorators: [{
570
570
  type: Injectable
571
571
  }], ctorParameters: () => [{ type: i1$2.Overlay }, { type: undefined, decorators: [{
572
572
  type: Inject,
@@ -1 +1 @@
1
- {"version":3,"file":"daffodil-design-toast.mjs","sources":["../../../libs/design/toast/src/service/changes-focus.ts","../../../libs/design/toast/src/service/position-strategy.ts","../../../libs/design/toast/src/interfaces/toast-options.ts","../../../libs/design/toast/src/service/position.service.ts","../../../libs/design/toast/src/toast/toast-config.ts","../../../libs/design/toast/src/toast-actions/toast-actions.directive.ts","../../../libs/design/toast/src/toast/toast.component.ts","../../../libs/design/toast/src/toast/toast.component.html","../../../libs/design/toast/src/toast-message/toast-message.directive.ts","../../../libs/design/toast/src/toast-title/toast-title.directive.ts","../../../libs/design/toast/src/toast/toast-template.component.ts","../../../libs/design/toast/src/service/toast.service.ts","../../../libs/design/toast/src/toast/toast-provider.ts","../../../libs/design/toast/src/daffodil-design-toast.ts"],"sourcesContent":["import { DaffToast } from '../interfaces/toast';\n\nexport const daffToastChangesFocus = (toast: DaffToast): boolean => toast.actions?.length > 0;\n","import {\n GlobalPositionStrategy,\n PositionStrategy,\n} from '@angular/cdk/overlay';\n\nimport { DaffToastPosition } from '../interfaces/toast-options';\n\nexport const createPositionStrategy = (position: DaffToastPosition): PositionStrategy => {\n const strat = new GlobalPositionStrategy();\n\n switch ( position.horizontal ) {\n case 'left':\n strat.left('48px');\n break;\n case 'right':\n strat.right('48px');\n break;\n case 'center':\n strat.centerHorizontally();\n break;\n default:\n strat.right('48px');\n }\n\n switch(position.vertical) {\n case 'top':\n strat.top('80px');\n break;\n case 'bottom':\n strat.bottom('48px');\n break;\n default:\n strat.top('80px');\n }\n\n return strat;\n};\n","import { createConfigInjectionToken } from '@daffodil/core';\n\nimport {\n DaffToastHorizontalPosition,\n DaffToastVerticalPosition,\n} from '../helpers/toast-position';\n\ntype Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\ntype XOR<T, U> = (T | U) extends Record<string,unknown> ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\n\nexport interface DaffToastVerticalPositionInterface {\n vertical: DaffToastVerticalPosition;\n};\n\nexport interface DaffToastHorizontalPositionInterface {\n horizontal: DaffToastHorizontalPosition;\n};\n\nexport type DaffToastPosition = DaffToastVerticalPositionInterface & DaffToastHorizontalPositionInterface;\n\nexport interface DaffToastOptions {\n /**\n * The position of all toasts.\n */\n position: DaffToastPosition;\n\n /**\n * @docs-private\n */\n useParent?: boolean;\n}\n\nexport const daffToastDefaultOptions: DaffToastOptions = {\n position: {\n vertical: 'top',\n horizontal: 'right',\n },\n useParent: true,\n};\n\nexport const {\n token: DAFF_TOAST_OPTIONS,\n provider: provideDaffToastOptions,\n} = createConfigInjectionToken<DaffToastOptions>(daffToastDefaultOptions, 'DAFF_TOAST_OPTIONS');\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport { DaffBreakpoints } from '@daffodil/design';\n\nimport {\n DAFF_TOAST_OPTIONS,\n DaffToastOptions,\n DaffToastPosition,\n} from '../interfaces/toast-options';\n\n@Injectable()\nexport class DaffToastPositionService {\n\n constructor(@Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions, private mediaQuery: BreakpointObserver) {\n this._config = options.position;\n }\n\n private _config: DaffToastPosition;\n private _position: DaffToastPosition;\n\n /**\n * Reads the current position of the toast. Defaults to bottom center on mobile devices.\n */\n get config(): DaffToastPosition {\n return this.mediaQuery.isMatched(DaffBreakpoints.MOBILE)\n ? this._position ?? this._config\n : <DaffToastPosition>{ vertical: 'bottom', horizontal: 'center' };\n }\n\n private set config(val: DaffToastPosition) {\n this._config = val;\n }\n\n /**\n * Changes the position of the toast.\n *\n * @param position The position of the toast.\n */\n setPosition(position: DaffToastPosition) {\n this._position = position;\n }\n}\n","/**\n * Defines optional settings that control the behavior of a toast.\n */\nexport interface DaffToastConfiguration {\n /**\n * The duration (in milliseconds) the toast remains visible before dismissal. By default, toasts without actions are dismissed after `5000ms`.\n *\n * While a duration can be set for actionable toasts, it is not recommended since\n * users should have sufficient time to interact with the actions.\n *\n *\n * @usage\n * ```\n * export class CustomComponent {\n * private toast: DaffToast;\n *\n * constructor(private toastService: DaffToastService) {}\n *\n * open() {\n * this.toast = this.toastService.open({\n * title: 'Update Complete',\n * message: 'This page has been updated to the newest version.',\n * status: 'success',\n * },\n * {\n * duration: 7000,\n * });\n * }\n * }\n * ```\n */\n duration?: number;\n}\n\nexport const daffDefaultToastConfiguration: DaffToastConfiguration = {};\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[daffToastActions]',\n host: {\n 'class': 'daff-toast__actions',\n },\n})\n\nexport class DaffToastActionsDirective {}\n","/* eslint-disable quote-props */\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y';\nimport {\n Component,\n ElementRef,\n ContentChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterViewInit,\n AfterContentInit,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n DaffArticleEncapsulatedDirective,\n DaffFocusStackService,\n DaffPrefixDirective,\n DaffStatusableDirective,\n} from '@daffodil/design';\n\nimport { DaffToast } from '../interfaces/toast';\nimport { daffToastChangesFocus } from '../service/changes-focus';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\n\n/**\n * @docs-private\n *\n * DaffToastComponent provides a way to display and\n * communicate information for user actions or system updates.\n */\n@Component({\n selector: 'daff-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n hostDirectives: [\n { directive: DaffArticleEncapsulatedDirective },\n {\n directive: DaffStatusableDirective,\n inputs: ['status'],\n },\n ],\n host: {\n 'class': 'daff-toast',\n '(keydown.escape)': 'onEscape()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffToastComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /**\n * @docs-private\n */\n @ContentChild(DaffToastActionsDirective) _actions: DaffToastActionsDirective;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffPrefixDirective) _prefix: DaffPrefixDirective;\n\n @Input() toast: DaffToast;\n\n /**\n * @docs-private\n */\n onEscape() {\n this.toast.dismiss();\n }\n\n private _focusTrap: ConfigurableFocusTrap;\n\n constructor(\n private _elementRef: ElementRef,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _focusStack: DaffFocusStackService,\n ) {\n }\n\n /**\n * @docs-private\n */\n ngAfterContentInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement,\n );\n }\n }\n\n /**\n * @docs-private\n */\n ngAfterViewInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusStack.push();\n this._focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap.destroy();\n }\n }\n}\n","@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-toast__details\">\n <div class=\"daff-toast__content\">\n <ng-content select=\"[daffToastTitle]\"></ng-content>\n <ng-content select=\"[daffToastMessage]\"></ng-content>\n </div>\n <ng-content select=\"[daffToastActions]\"></ng-content>\n</div>\n<ng-content></ng-content>\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[daffToastMessage]',\n host: {\n 'class': 'daff-toast__message',\n },\n})\n\nexport class DaffToastMessageDirective {}\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[daffToastTitle]',\n host: {\n 'class': 'daff-toast__title',\n },\n})\n\nexport class DaffToastTitleDirective {}\n","import {\n NgTemplateOutlet,\n SlicePipe,\n} from '@angular/common';\nimport {\n Input,\n ChangeDetectionStrategy,\n Component,\n ChangeDetectorRef,\n Inject,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport { DAFF_BUTTON_COMPONENTS } from '@daffodil/design/button';\n\nimport { DaffToastComponent } from './toast.component';\nimport { DaffToast } from '../interfaces/toast';\nimport {\n DaffToastOptions,\n DAFF_TOAST_OPTIONS,\n} from '../interfaces/toast-options';\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\nimport { DaffToastMessageDirective } from '../toast-message/toast-message.directive';\nimport { DaffToastTitleDirective } from '../toast-title/toast-title.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @for (item of items | slice:0:3; track item) {\n <daff-toast\n [toast]=\"item\"\n [status]=\"item.status ?? null\"\n (closeToast)=\"item.dismiss()\"\n [class]=\"'slide-in-' + getAnimationDirection()\"\n [attr.role]=\"item.actions ? 'alertdialog' : 'status'\"\n [attr.aria-labelledby]=\"item.actions ? item.title : undefined\"\n [attr.aria-describedby]=\"item.actions ? item.message : undefined\">\n <div daffToastTitle>{{ item.title }}</div>\n <div daffToastMessage>{{ item.message }}</div>\n @if (item.actions) {\n <div daffToastActions>\n @for (action of item.actions; track action) {\n <ng-container *ngTemplateOutlet=\"button;context:{ action, item }\"></ng-container>\n }\n </div>\n }\n @if (item.dismissible) {\n <button daff-icon-button color=\"theme-contrast\"\n aria-label=\"Close\"\n [attr.aria-hidden]=\"item.actions ? undefined : true\"\n (click)=\"item.dismiss()\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n }\n </daff-toast>\n }\n\n <ng-template #button let-action=\"action\" let-item=\"item\">\n @switch (action.type) {\n @case ('stroked') {\n <button type=\"button\" daff-stroked-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n @case ('flat') {\n <button type=\"button\" daff-flat-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n @case ('underline') {\n <button type=\"button\" daff-underline-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n @default {\n <button type=\"button\" daff-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n }\n </ng-template>\n `,\n imports: [\n DAFF_BUTTON_COMPONENTS,\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n FaIconComponent,\n SlicePipe,\n NgTemplateOutlet,\n ],\n})\nexport class DaffToastTemplateComponent {\n faTimes = faTimes;\n\n private _items: DaffToast[] = [];\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DAFF_TOAST_OPTIONS)\n private options: DaffToastOptions,\n private toastPosition: DaffToastPositionService,\n ) { }\n\n @Output() closeToast: EventEmitter<void> = new EventEmitter();\n\n onCloseToast(event: Event) {\n this.closeToast.emit();\n }\n\n getAnimationDirection(): string {\n const position = this.toastPosition.config.horizontal + '-' + this.toastPosition.config.vertical;\n\n switch (position) {\n case 'left-top':\n case 'left-bottom':\n return 'left';\n case 'right-top':\n case 'right-bottom':\n return 'right';\n case 'center-top':\n return 'top';\n case 'center-bottom':\n return 'bottom';\n default:\n return 'left';\n }\n }\n\n @Input()\n get items(): DaffToast[] {\n return this._items;\n }\n set items(value: DaffToast[]) {\n this._items = value;\n this.cd.markForCheck();\n }\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n EventEmitter,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport {\n EMPTY,\n merge,\n of,\n Subscription,\n} from 'rxjs';\nimport {\n delay,\n filter,\n map,\n take,\n tap,\n} from 'rxjs/operators';\n\nimport {\n DaffBreakpoints,\n DaffFocusStackService,\n} from '@daffodil/design';\n\nimport { daffToastChangesFocus } from './changes-focus';\nimport { createPositionStrategy } from './position-strategy';\nimport { DaffToastPositionService } from './position.service';\nimport {\n DaffToast,\n DaffToastData,\n} from '../interfaces/toast';\nimport {\n DAFF_TOAST_OPTIONS,\n DaffToastOptions,\n} from '../interfaces/toast-options';\nimport {\n daffDefaultToastConfiguration,\n DaffToastConfiguration,\n} from '../toast/toast-config';\nimport { DaffToastTemplateComponent } from '../toast/toast-template.component';\n\n/**\n * Service to display toasts.\n *\n * @example\n * ```ts\n * import {\n * ChangeDetectionStrategy,\n * Component,\n * EventEmitter,\n * OnInit,\n * } from '@angular/core';\n *\n * import {\n * DaffToast,\n * DaffToastAction,\n * DaffToastService,\n * } from '@daffodil/design/toast';\n *\n * @Component({\n * selector: 'default-toast',\n * templateUrl: './default-toast.component.html',\n * styles: [],\n * changeDetection: ChangeDetectionStrategy.OnPush,\n * })\n * export class DefaultToastComponent implements OnInit {\n * private toast: DaffToast;\n *\n * constructor(private toastService: DaffToastService) {}\n *\n * closeToast = new EventEmitter<DaffToastAction>();\n *\n * open() {\n * this.toast = this.toastService.open({\n * title: 'Update Available',\n * message: 'A new version of this page is available.',\n * actions: [\n * { content: 'Remind me later', type: 'flat', size: 'sm', eventEmitter: this.closeToast },\n * ],\n * });\n * }\n *\n * ngOnInit() {\n * this.closeToast.subscribe(() => {\n * this.toastService.close(this.toast);\n * });\n * }\n * }\n * ```\n */\n@Injectable()\nexport class DaffToastService implements OnDestroy {\n\n private _sub: Subscription;\n\n private _toasts: DaffToast[] = [];\n\n private _overlayRef?: OverlayRef;\n\n private _template?: ComponentRef<DaffToastTemplateComponent>;\n\n constructor(\n private overlay: Overlay,\n @Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions,\n @Optional() @SkipSelf() private _parentToast: DaffToastService,\n private mediaQuery: BreakpointObserver,\n private toastPosition: DaffToastPositionService,\n private focusStack: DaffFocusStackService,\n private injector: Injector,\n ) {\n this._sub = this.mediaQuery.observe(DaffBreakpoints.MOBILE).pipe(\n filter(() => this._overlayRef !== undefined),\n map((position) => createPositionStrategy(this.toastPosition.config)),\n tap((strategy) => this._overlayRef.updatePositionStrategy(strategy)),\n ).subscribe();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._sub.unsubscribe();\n }\n\n private _attachToastTemplate(\n overlayRef: OverlayRef,\n ): ComponentRef<DaffToastTemplateComponent> {\n const template = overlayRef.attach(new ComponentPortal(DaffToastTemplateComponent, null, this.injector));\n return template;\n }\n\n private _createOverlayRef(): OverlayRef {\n return this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: createPositionStrategy(this.toastPosition.config),\n });\n }\n\n /**\n * Opens a toast.\n *\n * @param toast Data that can be shown on a toast.\n * @param configuration Additional configuration options such as duration. The default duration is set to `5000ms`.\n */\n open(\n toast: DaffToastData,\n configuration?: Partial<DaffToastConfiguration>,\n ): DaffToast {\n if(this._parentToast && this.options.useParent) {\n return this._parentToast.open(toast, configuration);\n }\n\n const config: DaffToastConfiguration = {\n ...daffDefaultToastConfiguration,\n // sets the default duration to 5000ms if a toast does not have actions\n duration: toast.actions?.length > 0 ? undefined : 5000,\n ...configuration,\n };\n if(this._toasts.length === 0) {\n this._overlayRef = this._createOverlayRef();\n this._template = this._attachToastTemplate(this._overlayRef);\n }\n const dismissEvent = new EventEmitter<void>();\n const _toastPlus: DaffToast = {\n dismissible: true,\n ...toast,\n dismiss: () => {\n dismissEvent.emit();\n },\n dismissalStream: merge(\n config.duration ? of(undefined).pipe(delay(config.duration)) : EMPTY,\n dismissEvent,\n ).pipe(\n take(1),\n ),\n };\n\n _toastPlus.dismissalStream.subscribe(() => {\n this.close(_toastPlus);\n });\n\n this._toasts = [\n _toastPlus,\n ...this._toasts,\n ];\n\n this._template.instance.items = this._toasts;\n\n return _toastPlus;\n }\n\n /**\n * Closes a toast.\n *\n * @param toast The instance of toast that you wish to close.\n */\n close(toast: DaffToast): void {\n if(this._parentToast && this.options.useParent) {\n this._parentToast.close(toast);\n return;\n }\n\n if(daffToastChangesFocus(toast)) {\n this.focusStack.pop();\n }\n\n const index = this._toasts.indexOf(toast);\n if (index === -1) {\n throw new Error(\n 'The Toast that you are trying to remove does not exist.',\n );\n }\n\n this._toasts = this._toasts.filter(m => m !== toast);\n this._template.instance.items = [...this._toasts];\n\n if(this._toasts.length === 0) {\n this._overlayRef.dispose();\n this._template.destroy();\n this._overlayRef = undefined;\n this._template = undefined;\n }\n }\n}\n","import { Provider } from '@angular/core';\n\nimport {\n daffToastDefaultOptions,\n DaffToastOptions,\n provideDaffToastOptions,\n} from '../interfaces/toast-options';\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastService } from '../service/toast.service';\n\n/**\n * Registers the `DaffToastService` for displaying a toast. This provider ensures\n * toasts function correctly within your application.\n *\n * ```ts\n * import { provideDaffToast } from '@daffodil/design/toast';\n *\n * @NgModule({\n * \tproviders: [\n * provideDaffToast({\n * position: {\n * vertical: 'bottom',\n * horizontal: 'left',\n * },\n * }),\n * ]\n * )}\n *\n * export class AppModule {}\n * ```\n * @param config Sets the configuration for all toasts.\n * Toasts are displayed in the top-right corner of the screen by default on desktop devices.\n *\n * On mobile devices, toasts will always appear in the bottom-center position,\n * regardless of configuration settings.\n *\n */\nexport const provideDaffToast = (config: DaffToastOptions = daffToastDefaultOptions): Provider[] => [\n DaffToastService,\n DaffToastPositionService,\n provideDaffToastOptions(config),\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DaffToastPositionService","i2","i3.DaffToastPositionService","i4"],"mappings":"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"}
1
+ {"version":3,"file":"daffodil-design-toast.mjs","sources":["../../../libs/design/toast/src/service/changes-focus.ts","../../../libs/design/toast/src/service/position-strategy.ts","../../../libs/design/toast/src/interfaces/toast-options.ts","../../../libs/design/toast/src/service/position.service.ts","../../../libs/design/toast/src/toast/toast-config.ts","../../../libs/design/toast/src/toast-actions/toast-actions.directive.ts","../../../libs/design/toast/src/toast/toast.component.ts","../../../libs/design/toast/src/toast/toast.component.html","../../../libs/design/toast/src/toast-message/toast-message.directive.ts","../../../libs/design/toast/src/toast-title/toast-title.directive.ts","../../../libs/design/toast/src/toast/toast-template.component.ts","../../../libs/design/toast/src/service/toast.service.ts","../../../libs/design/toast/src/toast/toast-provider.ts","../../../libs/design/toast/src/daffodil-design-toast.ts"],"sourcesContent":["import { DaffToast } from '../interfaces/toast';\n\nexport const daffToastChangesFocus = (toast: DaffToast): boolean => toast.actions?.length > 0;\n","import {\n GlobalPositionStrategy,\n PositionStrategy,\n} from '@angular/cdk/overlay';\n\nimport { DaffToastPosition } from '../interfaces/toast-options';\n\nexport const createPositionStrategy = (position: DaffToastPosition): PositionStrategy => {\n const strat = new GlobalPositionStrategy();\n\n switch ( position.horizontal ) {\n case 'left':\n strat.left('48px');\n break;\n case 'right':\n strat.right('48px');\n break;\n case 'center':\n strat.centerHorizontally();\n break;\n default:\n strat.right('48px');\n }\n\n switch(position.vertical) {\n case 'top':\n strat.top('80px');\n break;\n case 'bottom':\n strat.bottom('48px');\n break;\n default:\n strat.top('80px');\n }\n\n return strat;\n};\n","import { createConfigInjectionToken } from '@daffodil/core';\n\nimport {\n DaffToastHorizontalPosition,\n DaffToastVerticalPosition,\n} from '../helpers/toast-position';\n\ntype Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };\ntype XOR<T, U> = (T | U) extends Record<string,unknown> ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;\n\nexport interface DaffToastVerticalPositionInterface {\n vertical: DaffToastVerticalPosition;\n};\n\nexport interface DaffToastHorizontalPositionInterface {\n horizontal: DaffToastHorizontalPosition;\n};\n\nexport type DaffToastPosition = DaffToastVerticalPositionInterface & DaffToastHorizontalPositionInterface;\n\nexport interface DaffToastOptions {\n /**\n * The position of all toasts.\n */\n position: DaffToastPosition;\n\n /**\n * @docs-private\n */\n useParent?: boolean;\n}\n\nexport const daffToastDefaultOptions: DaffToastOptions = {\n position: {\n vertical: 'top',\n horizontal: 'right',\n },\n useParent: true,\n};\n\nexport const {\n token: DAFF_TOAST_OPTIONS,\n provider: provideDaffToastOptions,\n} = createConfigInjectionToken<DaffToastOptions>(daffToastDefaultOptions, 'DAFF_TOAST_OPTIONS');\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Inject,\n Injectable,\n} from '@angular/core';\n\nimport { DaffBreakpoints } from '@daffodil/design';\n\nimport {\n DAFF_TOAST_OPTIONS,\n DaffToastOptions,\n DaffToastPosition,\n} from '../interfaces/toast-options';\n\n@Injectable()\nexport class DaffToastPositionService {\n\n constructor(@Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions, private mediaQuery: BreakpointObserver) {\n this._config = options.position;\n }\n\n private _config: DaffToastPosition;\n private _position: DaffToastPosition;\n\n /**\n * Reads the current position of the toast. Defaults to bottom center on mobile devices.\n */\n get config(): DaffToastPosition {\n return this.mediaQuery.isMatched(DaffBreakpoints.MOBILE)\n ? this._position ?? this._config\n : <DaffToastPosition>{ vertical: 'bottom', horizontal: 'center' };\n }\n\n private set config(val: DaffToastPosition) {\n this._config = val;\n }\n\n /**\n * Changes the position of the toast.\n *\n * @param position The position of the toast.\n */\n setPosition(position: DaffToastPosition) {\n this._position = position;\n }\n}\n","/**\n * Defines optional settings that control the behavior of a toast.\n */\nexport interface DaffToastConfiguration {\n /**\n * The duration (in milliseconds) the toast remains visible before dismissal. By default, toasts without actions are dismissed after `5000ms`.\n *\n * While a duration can be set for actionable toasts, it is not recommended since\n * users should have sufficient time to interact with the actions.\n *\n *\n * @usage\n * ```\n * export class CustomComponent {\n * private toast: DaffToast;\n *\n * constructor(private toastService: DaffToastService) {}\n *\n * open() {\n * this.toast = this.toastService.open({\n * title: 'Update Complete',\n * message: 'This page has been updated to the newest version.',\n * status: 'success',\n * },\n * {\n * duration: 7000,\n * });\n * }\n * }\n * ```\n */\n duration?: number;\n}\n\nexport const daffDefaultToastConfiguration: DaffToastConfiguration = {};\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[daffToastActions]',\n host: {\n 'class': 'daff-toast__actions',\n },\n})\n\nexport class DaffToastActionsDirective {}\n","/* eslint-disable quote-props */\nimport {\n ConfigurableFocusTrap,\n ConfigurableFocusTrapFactory,\n} from '@angular/cdk/a11y';\nimport {\n Component,\n ElementRef,\n ContentChild,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n AfterViewInit,\n AfterContentInit,\n Input,\n OnDestroy,\n} from '@angular/core';\n\nimport {\n DaffArticleEncapsulatedDirective,\n DaffFocusStackService,\n DaffPrefixDirective,\n DaffStatusableDirective,\n} from '@daffodil/design';\n\nimport { DaffToast } from '../interfaces/toast';\nimport { daffToastChangesFocus } from '../service/changes-focus';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\n\n/**\n * @docs-private\n *\n * DaffToastComponent provides a way to display and\n * communicate information for user actions or system updates.\n */\n@Component({\n selector: 'daff-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n hostDirectives: [\n { directive: DaffArticleEncapsulatedDirective },\n {\n directive: DaffStatusableDirective,\n inputs: ['status'],\n },\n ],\n host: {\n 'class': 'daff-toast',\n '(keydown.escape)': 'onEscape()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DaffToastComponent implements AfterContentInit, AfterViewInit, OnDestroy {\n /**\n * @docs-private\n */\n @ContentChild(DaffToastActionsDirective) _actions: DaffToastActionsDirective;\n\n /**\n * @docs-private\n */\n @ContentChild(DaffPrefixDirective) _prefix: DaffPrefixDirective;\n\n @Input() toast: DaffToast;\n\n /**\n * @docs-private\n */\n onEscape() {\n this.toast.dismiss();\n }\n\n private _focusTrap: ConfigurableFocusTrap;\n\n constructor(\n private _elementRef: ElementRef,\n private _focusTrapFactory: ConfigurableFocusTrapFactory,\n private _focusStack: DaffFocusStackService,\n ) {\n }\n\n /**\n * @docs-private\n */\n ngAfterContentInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap = this._focusTrapFactory.create(\n this._elementRef.nativeElement,\n );\n }\n }\n\n /**\n * @docs-private\n */\n ngAfterViewInit() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusStack.push();\n this._focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy() {\n if(daffToastChangesFocus(this.toast)) {\n this._focusTrap.destroy();\n }\n }\n}\n","@if (_prefix) {\n <ng-content select=\"[daffPrefix]\"></ng-content>\n}\n<div class=\"daff-toast__details\">\n <div class=\"daff-toast__content\">\n <ng-content select=\"[daffToastTitle]\"></ng-content>\n <ng-content select=\"[daffToastMessage]\"></ng-content>\n </div>\n <ng-content select=\"[daffToastActions]\"></ng-content>\n</div>\n<ng-content></ng-content>\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[daffToastMessage]',\n host: {\n 'class': 'daff-toast__message',\n },\n})\n\nexport class DaffToastMessageDirective {}\n","/* eslint-disable quote-props */\nimport { Directive } from '@angular/core';\n\n@Directive({\n selector: '[daffToastTitle]',\n host: {\n 'class': 'daff-toast__title',\n },\n})\n\nexport class DaffToastTitleDirective {}\n","import {\n NgTemplateOutlet,\n SlicePipe,\n} from '@angular/common';\nimport {\n Input,\n ChangeDetectionStrategy,\n Component,\n ChangeDetectorRef,\n Inject,\n Output,\n EventEmitter,\n} from '@angular/core';\nimport { FaIconComponent } from '@fortawesome/angular-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\n\nimport { DAFF_BUTTON_COMPONENTS } from '@daffodil/design/button';\n\nimport { DaffToastComponent } from './toast.component';\nimport { DaffToast } from '../interfaces/toast';\nimport {\n DaffToastOptions,\n DAFF_TOAST_OPTIONS,\n} from '../interfaces/toast-options';\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastActionsDirective } from '../toast-actions/toast-actions.directive';\nimport { DaffToastMessageDirective } from '../toast-message/toast-message.directive';\nimport { DaffToastTitleDirective } from '../toast-title/toast-title.directive';\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @for (item of items | slice:0:3; track item) {\n <daff-toast\n [toast]=\"item\"\n [status]=\"item.status ?? null\"\n (closeToast)=\"item.dismiss()\"\n [class]=\"'slide-in-' + getAnimationDirection()\"\n [attr.role]=\"item.actions ? 'alertdialog' : 'status'\"\n [attr.aria-labelledby]=\"item.actions ? item.title : undefined\"\n [attr.aria-describedby]=\"item.actions ? item.message : undefined\">\n <div daffToastTitle>{{ item.title }}</div>\n <div daffToastMessage>{{ item.message }}</div>\n @if (item.actions) {\n <div daffToastActions>\n @for (action of item.actions; track action) {\n <ng-container *ngTemplateOutlet=\"button;context:{ action, item }\"></ng-container>\n }\n </div>\n }\n @if (item.dismissible) {\n <button daff-icon-button color=\"theme-contrast\"\n aria-label=\"Close\"\n [attr.aria-hidden]=\"item.actions ? undefined : true\"\n (click)=\"item.dismiss()\">\n <fa-icon [icon]=\"faTimes\" [fixedWidth]=\"true\"></fa-icon>\n </button>\n }\n </daff-toast>\n }\n\n <ng-template #button let-action=\"action\" let-item=\"item\">\n @switch (action.type) {\n @case ('stroked') {\n <button type=\"button\" daff-stroked-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n @case ('flat') {\n <button type=\"button\" daff-flat-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n @case ('underline') {\n <button type=\"button\" daff-underline-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n @default {\n <button type=\"button\" daff-button\n [status]=\"action.status\"\n [color]=\"action.color\"\n [size]=\"action.size\"\n [attr.aria-label]=\"action.content\"\n (click)=\"action.eventEmitter?.emit({ event: $event, action})\">\n {{ action.content }}\n </button>\n }\n }\n </ng-template>\n `,\n imports: [\n DAFF_BUTTON_COMPONENTS,\n DaffToastComponent,\n DaffToastActionsDirective,\n DaffToastTitleDirective,\n DaffToastMessageDirective,\n FaIconComponent,\n SlicePipe,\n NgTemplateOutlet,\n ],\n})\nexport class DaffToastTemplateComponent {\n faTimes = faTimes;\n\n private _items: DaffToast[] = [];\n\n constructor(\n private cd: ChangeDetectorRef,\n @Inject(DAFF_TOAST_OPTIONS)\n private options: DaffToastOptions,\n private toastPosition: DaffToastPositionService,\n ) { }\n\n @Output() closeToast: EventEmitter<void> = new EventEmitter();\n\n onCloseToast(event: Event) {\n this.closeToast.emit();\n }\n\n getAnimationDirection(): string {\n const position = this.toastPosition.config.horizontal + '-' + this.toastPosition.config.vertical;\n\n switch (position) {\n case 'left-top':\n case 'left-bottom':\n return 'left';\n case 'right-top':\n case 'right-bottom':\n return 'right';\n case 'center-top':\n return 'top';\n case 'center-bottom':\n return 'bottom';\n default:\n return 'left';\n }\n }\n\n @Input()\n get items(): DaffToast[] {\n return this._items;\n }\n set items(value: DaffToast[]) {\n this._items = value;\n this.cd.markForCheck();\n }\n}\n","import { BreakpointObserver } from '@angular/cdk/layout';\nimport {\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ComponentRef,\n EventEmitter,\n Inject,\n Injectable,\n Injector,\n OnDestroy,\n Optional,\n SkipSelf,\n} from '@angular/core';\nimport {\n EMPTY,\n merge,\n of,\n Subscription,\n} from 'rxjs';\nimport {\n delay,\n filter,\n map,\n take,\n tap,\n} from 'rxjs/operators';\n\nimport {\n DaffBreakpoints,\n DaffFocusStackService,\n} from '@daffodil/design';\n\nimport { daffToastChangesFocus } from './changes-focus';\nimport { createPositionStrategy } from './position-strategy';\nimport { DaffToastPositionService } from './position.service';\nimport {\n DaffToast,\n DaffToastData,\n} from '../interfaces/toast';\nimport {\n DAFF_TOAST_OPTIONS,\n DaffToastOptions,\n} from '../interfaces/toast-options';\nimport {\n daffDefaultToastConfiguration,\n DaffToastConfiguration,\n} from '../toast/toast-config';\nimport { DaffToastTemplateComponent } from '../toast/toast-template.component';\n\n/**\n * Service to display toasts.\n *\n * @example\n * ```ts\n * import {\n * ChangeDetectionStrategy,\n * Component,\n * EventEmitter,\n * OnInit,\n * } from '@angular/core';\n *\n * import {\n * DaffToast,\n * DaffToastAction,\n * DaffToastService,\n * } from '@daffodil/design/toast';\n *\n * @Component({\n * selector: 'default-toast',\n * templateUrl: './default-toast.component.html',\n * styles: [],\n * changeDetection: ChangeDetectionStrategy.OnPush,\n * })\n * export class DefaultToastComponent implements OnInit {\n * private toast: DaffToast;\n *\n * constructor(private toastService: DaffToastService) {}\n *\n * closeToast = new EventEmitter<DaffToastAction>();\n *\n * open() {\n * this.toast = this.toastService.open({\n * title: 'Update Available',\n * message: 'A new version of this page is available.',\n * actions: [\n * { content: 'Remind me later', type: 'flat', size: 'sm', eventEmitter: this.closeToast },\n * ],\n * });\n * }\n *\n * ngOnInit() {\n * this.closeToast.subscribe(() => {\n * this.toastService.close(this.toast);\n * });\n * }\n * }\n * ```\n */\n@Injectable()\nexport class DaffToastService implements OnDestroy {\n\n private _sub: Subscription;\n\n private _toasts: DaffToast[] = [];\n\n private _overlayRef?: OverlayRef;\n\n private _template?: ComponentRef<DaffToastTemplateComponent>;\n\n constructor(\n private overlay: Overlay,\n @Inject(DAFF_TOAST_OPTIONS) private options: DaffToastOptions,\n @Optional() @SkipSelf() private _parentToast: DaffToastService,\n private mediaQuery: BreakpointObserver,\n private toastPosition: DaffToastPositionService,\n private focusStack: DaffFocusStackService,\n private injector: Injector,\n ) {\n this._sub = this.mediaQuery.observe(DaffBreakpoints.MOBILE).pipe(\n filter(() => this._overlayRef !== undefined),\n map((position) => createPositionStrategy(this.toastPosition.config)),\n tap((strategy) => this._overlayRef.updatePositionStrategy(strategy)),\n ).subscribe();\n }\n\n /**\n * @docs-private\n */\n ngOnDestroy(): void {\n this._sub.unsubscribe();\n }\n\n private _attachToastTemplate(\n overlayRef: OverlayRef,\n ): ComponentRef<DaffToastTemplateComponent> {\n const template = overlayRef.attach(new ComponentPortal(DaffToastTemplateComponent, null, this.injector));\n return template;\n }\n\n private _createOverlayRef(): OverlayRef {\n return this.overlay.create({\n hasBackdrop: false,\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy: createPositionStrategy(this.toastPosition.config),\n });\n }\n\n /**\n * Opens a toast.\n *\n * @param toast Data that can be shown on a toast.\n * @param configuration Additional configuration options such as duration. The default duration is set to `5000ms`.\n */\n open(\n toast: DaffToastData,\n configuration?: Partial<DaffToastConfiguration>,\n ): DaffToast {\n if(this._parentToast && this.options.useParent) {\n return this._parentToast.open(toast, configuration);\n }\n\n const config: DaffToastConfiguration = {\n ...daffDefaultToastConfiguration,\n // sets the default duration to 5000ms if a toast does not have actions\n duration: toast.actions?.length > 0 ? undefined : 5000,\n ...configuration,\n };\n if(this._toasts.length === 0) {\n this._overlayRef = this._createOverlayRef();\n this._template = this._attachToastTemplate(this._overlayRef);\n }\n const dismissEvent = new EventEmitter<void>();\n const _toastPlus: DaffToast = {\n dismissible: true,\n ...toast,\n dismiss: () => {\n dismissEvent.emit();\n },\n dismissalStream: merge(\n config.duration ? of(undefined).pipe(delay(config.duration)) : EMPTY,\n dismissEvent,\n ).pipe(\n take(1),\n ),\n };\n\n _toastPlus.dismissalStream.subscribe(() => {\n this.close(_toastPlus);\n });\n\n this._toasts = [\n _toastPlus,\n ...this._toasts,\n ];\n\n this._template.instance.items = this._toasts;\n\n return _toastPlus;\n }\n\n /**\n * Closes a toast.\n *\n * @param toast The instance of toast that you wish to close.\n */\n close(toast: DaffToast): void {\n if(this._parentToast && this.options.useParent) {\n this._parentToast.close(toast);\n return;\n }\n\n if(daffToastChangesFocus(toast)) {\n this.focusStack.pop();\n }\n\n const index = this._toasts.indexOf(toast);\n if (index === -1) {\n throw new Error(\n 'The Toast that you are trying to remove does not exist.',\n );\n }\n\n this._toasts = this._toasts.filter(m => m !== toast);\n this._template.instance.items = [...this._toasts];\n\n if(this._toasts.length === 0) {\n this._overlayRef.dispose();\n this._template.destroy();\n this._overlayRef = undefined;\n this._template = undefined;\n }\n }\n}\n","import { Provider } from '@angular/core';\n\nimport {\n daffToastDefaultOptions,\n DaffToastOptions,\n provideDaffToastOptions,\n} from '../interfaces/toast-options';\nimport { DaffToastPositionService } from '../service/position.service';\nimport { DaffToastService } from '../service/toast.service';\n\n/**\n * Registers the `DaffToastService` for displaying a toast. This provider ensures\n * toasts function correctly within your application.\n *\n * ```ts\n * import { provideDaffToast } from '@daffodil/design/toast';\n *\n * @NgModule({\n * \tproviders: [\n * provideDaffToast({\n * position: {\n * vertical: 'bottom',\n * horizontal: 'left',\n * },\n * }),\n * ]\n * )}\n *\n * export class AppModule {}\n * ```\n * @param config Sets the configuration for all toasts.\n * Toasts are displayed in the top-right corner of the screen by default on desktop devices.\n *\n * On mobile devices, toasts will always appear in the bottom-center position,\n * regardless of configuration settings.\n *\n */\nexport const provideDaffToast = (config: DaffToastOptions = daffToastDefaultOptions): Provider[] => [\n DaffToastService,\n DaffToastPositionService,\n provideDaffToastOptions(config),\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.DaffToastPositionService","i2","i3.DaffToastPositionService","i4"],"mappings":"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"}
@@ -202,29 +202,29 @@ class DaffTreeComponent {
202
202
  * but there may be use-cases (like SEO) where having the tree in the DOM
203
203
  * is relevant.
204
204
  */
205
- this.renderMode = input('in-dom', ...(ngDevMode ? [{ debugName: "renderMode" }] : []));
205
+ this.renderMode = input('in-dom', ...(ngDevMode ? [{ debugName: "renderMode" }] : /* istanbul ignore next */ []));
206
206
  /**
207
207
  * A unique identifier for the tree instance.
208
208
  * Used as a prefix for all node IDs in the tree.
209
209
  * If not provided, an auto-incrementing number is used.
210
210
  */
211
- this.id = input(`${daffTreeId++}`, ...(ngDevMode ? [{ debugName: "id" }] : []));
211
+ this.id = input(`${daffTreeId++}`, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
212
212
  /**
213
213
  * The tree data you would like to render.
214
214
  */
215
- this.tree = input(...(ngDevMode ? [undefined, { debugName: "tree" }] : []));
215
+ this.tree = input(...(ngDevMode ? [undefined, { debugName: "tree" }] : /* istanbul ignore next */ []));
216
216
  /**
217
217
  * The internal tree element.
218
218
  */
219
219
  this._tree = computed(() => {
220
220
  const tree = this.tree();
221
221
  return tree ? hydrateTree(tree, this.id()) : undefined;
222
- }, ...(ngDevMode ? [{ debugName: "_tree" }] : []));
222
+ }, ...(ngDevMode ? [{ debugName: "_tree" }] : /* istanbul ignore next */ []));
223
223
  /**
224
224
  * A revision counter incremented by notifications from tree items.
225
225
  * Used to trigger re-flattening when tree item state changes.
226
226
  */
227
- this._revision = signal(0, ...(ngDevMode ? [{ debugName: "_revision" }] : []));
227
+ this._revision = signal(0, ...(ngDevMode ? [{ debugName: "_revision" }] : /* istanbul ignore next */ []));
228
228
  /**
229
229
  * @docs-private
230
230
  *
@@ -235,29 +235,29 @@ class DaffTreeComponent {
235
235
  this._revision();
236
236
  const tree = this._tree();
237
237
  return tree ? flattenTree(tree, this.renderMode() === 'not-in-dom') : [];
238
- }, ...(ngDevMode ? [{ debugName: "flatTree" }] : []));
238
+ }, ...(ngDevMode ? [{ debugName: "flatTree" }] : /* istanbul ignore next */ []));
239
239
  /**
240
240
  * The template used to render tree-nodes that themselves have children.
241
241
  *
242
242
  * @docs-private
243
243
  */
244
- this.withChildrenTemplate = contentChild('daffTreeItemWithChildrenTpl', ...(ngDevMode ? [{ debugName: "withChildrenTemplate" }] : []));
244
+ this.withChildrenTemplate = contentChild('daffTreeItemWithChildrenTpl', ...(ngDevMode ? [{ debugName: "withChildrenTemplate" }] : /* istanbul ignore next */ []));
245
245
  /**
246
246
  * The template used to render tree-nodes that have no children.
247
247
  *
248
248
  * @docs-private
249
249
  */
250
- this.treeItemTemplate = contentChild('daffTreeItemTpl', ...(ngDevMode ? [{ debugName: "treeItemTemplate" }] : []));
250
+ this.treeItemTemplate = contentChild('daffTreeItemTpl', ...(ngDevMode ? [{ debugName: "treeItemTemplate" }] : /* istanbul ignore next */ []));
251
251
  this.notifier.notice$.subscribe(() => {
252
252
  this._revision.update((r) => r + 1);
253
253
  });
254
254
  }
255
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
256
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.18", type: DaffTreeComponent, isStandalone: true, selector: "ul[daff-tree]", inputs: { renderMode: { classPropertyName: "renderMode", publicName: "renderMode", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, tree: { classPropertyName: "tree", publicName: "tree", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "daff-tree" }, providers: [
255
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
256
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", type: DaffTreeComponent, isStandalone: true, selector: "ul[daff-tree]", inputs: { renderMode: { classPropertyName: "renderMode", publicName: "renderMode", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, tree: { classPropertyName: "tree", publicName: "tree", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "daff-tree" }, providers: [
257
257
  DaffTreeNotifierService,
258
258
  ], queries: [{ propertyName: "withChildrenTemplate", first: true, predicate: ["daffTreeItemWithChildrenTpl"], descendants: true, isSignal: true }, { propertyName: "treeItemTemplate", first: true, predicate: ["daffTreeItemTpl"], descendants: true, isSignal: true }], hostDirectives: [{ directive: i1.DaffArticleEncapsulatedDirective }], ngImport: i0, template: "@for (node of flatTree(); track node.id) {\n\t<li [attr.aria-level]=\"node.level\" [class.hidden]=\"!node.visible\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"node.hasChildren ? withChildrenTemplate() : treeItemTemplate(); context: { $implicit: node }\">\n\t\t</ng-container>\n\t</li>\n}", styles: [".daff-tree{margin:0;padding:0;list-style:none;--tree-padding: 1rem}.daff-tree li.hidden{display:none}.daff-tree-item{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;position:relative;background:none;border:0;padding:.5rem 1rem .5rem 0;line-height:1.5rem;font-weight:400;text-align:left;text-decoration:none;width:100%;padding-left:calc(var(--tree-padding) * (var(--depth)))}.daff-tree-item:before{content:\"\";position:absolute;top:0;bottom:0;left:0;width:.25rem}.daff-tree-item:focus,.daff-tree-item:focus-visible{z-index:1}.daff-tree-item.selected{font-weight:500}.daff-tree-item.parent{position:relative;padding-right:2.5rem}.daff-tree-item.parent:after{content:\"\";position:absolute;top:48%;right:1rem;display:inline-block;border-right:2px solid currentColor;border-bottom:2px solid currentColor;width:.5rem;height:.5rem;transform:translateY(-50%) rotate(45deg);transition:transform .15s}.daff-tree-item.parent.open:after{top:56%;transform:translateY(-50%) rotate(225deg)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
259
259
  }
260
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeComponent, decorators: [{
260
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeComponent, decorators: [{
261
261
  type: Component,
262
262
  args: [{ selector: 'ul[daff-tree]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
263
263
  DaffTreeNotifierService,
@@ -320,7 +320,7 @@ class DaffTreeItemDirective {
320
320
  /**
321
321
  * The {@link DaffTreeFlatNode} associated with this specific tree item.
322
322
  */
323
- this.node = input.required(...(ngDevMode ? [{ debugName: "node" }] : []));
323
+ this.node = input.required(...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
324
324
  /**
325
325
  * Whether or not the tree item is the currently active item.
326
326
  * Note that there is no requirement that there only be one active item at a time.
@@ -328,31 +328,33 @@ class DaffTreeItemDirective {
328
328
  * When a tree item becomes selected, all of its ancestor nodes
329
329
  * will be automatically opened so that the selected item is visible.
330
330
  */
331
- this.selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : []));
331
+ this.selected = input(false, ...(ngDevMode ? [{ debugName: "selected" }] : /* istanbul ignore next */ []));
332
332
  /**
333
333
  * The html `id` of the tree item. This is derived from the {@link DaffTreeData}.
334
334
  */
335
- this.id = computed(() => 'tree-' + this.node().id, ...(ngDevMode ? [{ debugName: "id" }] : []));
335
+ this.id = computed(() => 'tree-' + this.node().id, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
336
336
  /**
337
337
  * A property indicating the depth of the tree.
338
338
  */
339
- this.depth = computed(() => this.node().level, ...(ngDevMode ? [{ debugName: "depth" }] : []));
339
+ this.depth = computed(() => this.node().level, ...(ngDevMode ? [{ debugName: "depth" }] : /* istanbul ignore next */ []));
340
340
  /**
341
341
  * Whether or not this node has children.
342
342
  */
343
- this.isParent = computed(() => this.node().hasChildren, ...(ngDevMode ? [{ debugName: "isParent" }] : []));
343
+ this.isParent = computed(() => this.node().hasChildren, ...(ngDevMode ? [{ debugName: "isParent" }] : /* istanbul ignore next */ []));
344
344
  /**
345
345
  * Indicates whether or not the tree is `open`.
346
346
  */
347
- this.open = computed(() => this.node()._treeRef.open, ...(ngDevMode ? [{ debugName: "open" }] : []));
347
+ this.open = computed(() => this.node()._treeRef.open, ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
348
348
  /**
349
349
  * Accessibility property, notifying users about whether
350
350
  * or not the tree item is open.
351
+ *
352
+ * @docs-private
351
353
  */
352
354
  this.ariaExpanded = computed(() => {
353
355
  const node = this.node();
354
356
  return node.hasChildren ? (node._treeRef.open ? 'true' : 'false') : undefined;
355
- }, ...(ngDevMode ? [{ debugName: "ariaExpanded" }] : []));
357
+ }, ...(ngDevMode ? [{ debugName: "ariaExpanded" }] : /* istanbul ignore next */ []));
356
358
  effect(() => {
357
359
  if (this.selected()) {
358
360
  const node = untracked(this.node);
@@ -397,10 +399,10 @@ class DaffTreeItemDirective {
397
399
  node._treeRef.open = false;
398
400
  }
399
401
  }
400
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
401
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.18", type: DaffTreeItemDirective, isStandalone: true, selector: "[daffTreeItem]", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onEscape()", "click": "onClick()" }, properties: { "class.selected": "selected()", "class.parent": "isParent()", "class.open": "open()", "attr.id": "id()", "attr.aria-expanded": "ariaExpanded()", "style.--depth": "depth()" }, classAttribute: "daff-tree-item" }, ngImport: i0 }); }
402
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
403
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: DaffTreeItemDirective, isStandalone: true, selector: "[daffTreeItem]", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "keydown.escape": "onEscape()", "click": "onClick()" }, properties: { "class.selected": "selected()", "class.parent": "isParent()", "class.open": "open()", "attr.id": "id()", "attr.aria-expanded": "ariaExpanded()", "style.--depth": "depth()" }, classAttribute: "daff-tree-item" }, ngImport: i0 }); }
402
404
  }
403
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeItemDirective, decorators: [{
405
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeItemDirective, decorators: [{
404
406
  type: Directive,
405
407
  args: [{
406
408
  selector: '[daffTreeItem]',
@@ -422,14 +424,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
422
424
  * @deprecated in favor of {@link DAFF_TREE_COMPONENTS}. Deprecated in version 0.78.0. Will be removed in version 1.0.0.
423
425
  */
424
426
  class DaffTreeModule {
425
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
426
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeModule, imports: [CommonModule,
427
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
428
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeModule, imports: [CommonModule,
427
429
  DaffTreeComponent,
428
430
  DaffTreeItemDirective], exports: [DaffTreeComponent,
429
431
  DaffTreeItemDirective] }); }
430
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeModule, imports: [CommonModule] }); }
432
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeModule, imports: [CommonModule] }); }
431
433
  }
432
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: DaffTreeModule, decorators: [{
434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DaffTreeModule, decorators: [{
433
435
  type: NgModule,
434
436
  args: [{
435
437
  imports: [