@entake/particle 17.0.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 (208) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +396 -0
  3. package/app/modules/accordion/accordion.component.d.ts +26 -0
  4. package/app/modules/accordion/accordion.module.d.ts +11 -0
  5. package/app/modules/accordion/directives/accordion-content.directive.d.ts +8 -0
  6. package/app/modules/accordion/directives/accordion-header.directive.d.ts +8 -0
  7. package/app/modules/accordion/directives/accordion-item.directive.d.ts +13 -0
  8. package/app/modules/background-carousel/background-carousel.directive.d.ts +42 -0
  9. package/app/modules/background-carousel/carousel-options.model.d.ts +30 -0
  10. package/app/modules/background-carousel/particle-background-carousel.module.d.ts +8 -0
  11. package/app/modules/checkbox/checkbox.component.d.ts +43 -0
  12. package/app/modules/checkbox/checkbox.module.d.ts +9 -0
  13. package/app/modules/color-picker/color-picker.component.d.ts +149 -0
  14. package/app/modules/color-picker/color-picker.module.d.ts +9 -0
  15. package/app/modules/date-picker/components/calendar/calendar.component.d.ts +211 -0
  16. package/app/modules/date-picker/components/date-range-picker/date-range-picker.component.d.ts +95 -0
  17. package/app/modules/date-picker/date-picker.component.d.ts +259 -0
  18. package/app/modules/date-picker/date-picker.module.d.ts +15 -0
  19. package/app/modules/dialog/dialog.component.d.ts +87 -0
  20. package/app/modules/dialog/dialog.module.d.ts +9 -0
  21. package/app/modules/dropdown/dropdown.component.d.ts +288 -0
  22. package/app/modules/dropdown/dropdown.module.d.ts +9 -0
  23. package/app/modules/dropdown/models/dropdown-option-group.model.d.ts +16 -0
  24. package/app/modules/dropdown/models/dropdown-option.model.d.ts +25 -0
  25. package/app/modules/endpoint-state/components/endpoint-state.component.d.ts +46 -0
  26. package/app/modules/endpoint-state/endpoint-state.module.d.ts +8 -0
  27. package/app/modules/icons/components/icon-select.component.d.ts +229 -0
  28. package/app/modules/icons/models/fontawesome-icons-brands.model.d.ts +13 -0
  29. package/app/modules/icons/models/fontawesome-icons-regular.model.d.ts +13 -0
  30. package/app/modules/icons/models/fontawesome-icons-solid.model.d.ts +13 -0
  31. package/app/modules/icons/models/particle-icons-light.model.d.ts +197 -0
  32. package/app/modules/icons/models/particle-icons-regular.model.d.ts +205 -0
  33. package/app/modules/icons/models/particle-icons-solid.model.d.ts +365 -0
  34. package/app/modules/icons/particle-icons.module.d.ts +13 -0
  35. package/app/modules/icons/services/icons.service.d.ts +44 -0
  36. package/app/modules/idle-timeout/idle-timeout.component.d.ts +35 -0
  37. package/app/modules/idle-timeout/idle-timer.d.ts +14 -0
  38. package/app/modules/idle-timeout/particle-idle-timeout.module.d.ts +9 -0
  39. package/app/modules/input-mask/input-mask.component.d.ts +86 -0
  40. package/app/modules/input-mask/input-mask.module.d.ts +8 -0
  41. package/app/modules/keyfilter/keyfilter.directive.d.ts +60 -0
  42. package/app/modules/keyfilter/keyfilter.module.d.ts +8 -0
  43. package/app/modules/layout/components/layout-full-framing/layout-full-framing.component.d.ts +27 -0
  44. package/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.d.ts +23 -0
  45. package/app/modules/layout/layout.module.d.ts +10 -0
  46. package/app/modules/loader/components/loader.component.d.ts +11 -0
  47. package/app/modules/loader/loader.module.d.ts +8 -0
  48. package/app/modules/multi-select/models/multi-select-option-group.model.d.ts +16 -0
  49. package/app/modules/multi-select/models/multi-select-option.model.d.ts +25 -0
  50. package/app/modules/multi-select/multi-select.component.d.ts +279 -0
  51. package/app/modules/multi-select/multi-select.module.d.ts +8 -0
  52. package/app/modules/notification/models/notification.model.d.ts +21 -0
  53. package/app/modules/notification/notification.component.d.ts +46 -0
  54. package/app/modules/notification/notification.module.d.ts +8 -0
  55. package/app/modules/notification/services/notification.service.d.ts +54 -0
  56. package/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.d.ts +8 -0
  57. package/app/modules/ordinal-number-pipe/ordinal-number.pipe.d.ts +15 -0
  58. package/app/modules/paginator/pagination-event.model.d.ts +24 -0
  59. package/app/modules/paginator/paginator.component.d.ts +103 -0
  60. package/app/modules/paginator/particle-paginator.module.d.ts +13 -0
  61. package/app/modules/popover/popover.component.d.ts +140 -0
  62. package/app/modules/popover/popover.module.d.ts +9 -0
  63. package/app/modules/profile-pic/particle-profile-pic.module.d.ts +9 -0
  64. package/app/modules/profile-pic/profile-pic.component.d.ts +32 -0
  65. package/app/modules/progress-bar/progress-bar.component.d.ts +16 -0
  66. package/app/modules/progress-bar/progress-bar.module.d.ts +8 -0
  67. package/app/modules/push-container/particle-push-container.module.d.ts +9 -0
  68. package/app/modules/push-container/push-container-state.model.d.ts +7 -0
  69. package/app/modules/push-container/push-container.component.d.ts +137 -0
  70. package/app/modules/rich-text/particle-rich-text.module.d.ts +15 -0
  71. package/app/modules/rich-text/render-rich-text.component.d.ts +6 -0
  72. package/app/modules/rich-text/rich-text-capabilities.model.d.ts +7 -0
  73. package/app/modules/rich-text/rich-text.component.d.ts +48 -0
  74. package/app/modules/scroll-to-top/particle-scroll-to-top.module.d.ts +8 -0
  75. package/app/modules/scroll-to-top/scroll-to-top.component.d.ts +19 -0
  76. package/app/modules/slideover/particle-slideover.module.d.ts +8 -0
  77. package/app/modules/slideover/slideover.component.d.ts +35 -0
  78. package/app/modules/slider/slider.component.d.ts +143 -0
  79. package/app/modules/slider/slider.module.d.ts +9 -0
  80. package/app/modules/theming/components/theming.component.d.ts +43 -0
  81. package/app/modules/theming/models/theme.model.d.ts +88 -0
  82. package/app/modules/theming/services/theme-change-detection.service.d.ts +26 -0
  83. package/app/modules/theming/services/theming.service.d.ts +142 -0
  84. package/app/modules/theming/theming.module.d.ts +12 -0
  85. package/app/modules/toggle-switch/models/toggle-options.model.d.ts +11 -0
  86. package/app/modules/toggle-switch/toggle-switch.component.d.ts +43 -0
  87. package/app/modules/toggle-switch/toggle-switch.module.d.ts +8 -0
  88. package/app/modules/tooltip/tooltip.directive.d.ts +157 -0
  89. package/app/modules/tooltip/tooltip.module.d.ts +8 -0
  90. package/app/modules/week-picker/week-picker.component.d.ts +289 -0
  91. package/app/modules/week-picker/week-picker.module.d.ts +13 -0
  92. package/app/shared/enums/endpoint-status.enum.d.ts +9 -0
  93. package/app/shared/interceptors/json.interceptor.d.ts +17 -0
  94. package/app/shared/models/auditable.model.d.ts +21 -0
  95. package/app/shared/models/data-list.model.d.ts +9 -0
  96. package/app/shared/models/id.model.d.ts +9 -0
  97. package/app/shared/models/observable-container.d.ts +8 -0
  98. package/app/shared/models/particle-component-text.model.d.ts +211 -0
  99. package/app/shared/services/base-data.service.d.ts +130 -0
  100. package/app/shared/services/dialog.service.d.ts +10 -0
  101. package/app/shared/services/local-storage.service.d.ts +41 -0
  102. package/esm2022/app/modules/accordion/accordion.component.mjs +101 -0
  103. package/esm2022/app/modules/accordion/accordion.module.mjs +37 -0
  104. package/esm2022/app/modules/accordion/directives/accordion-content.directive.mjs +17 -0
  105. package/esm2022/app/modules/accordion/directives/accordion-header.directive.mjs +17 -0
  106. package/esm2022/app/modules/accordion/directives/accordion-item.directive.mjs +36 -0
  107. package/esm2022/app/modules/background-carousel/background-carousel.directive.mjs +91 -0
  108. package/esm2022/app/modules/background-carousel/carousel-options.model.mjs +36 -0
  109. package/esm2022/app/modules/background-carousel/particle-background-carousel.module.mjs +24 -0
  110. package/esm2022/app/modules/checkbox/checkbox.component.mjs +108 -0
  111. package/esm2022/app/modules/checkbox/checkbox.module.mjs +28 -0
  112. package/esm2022/app/modules/color-picker/color-picker.component.mjs +306 -0
  113. package/esm2022/app/modules/color-picker/color-picker.module.mjs +19 -0
  114. package/esm2022/app/modules/date-picker/components/calendar/calendar.component.mjs +496 -0
  115. package/esm2022/app/modules/date-picker/components/date-range-picker/date-range-picker.component.mjs +250 -0
  116. package/esm2022/app/modules/date-picker/date-picker.component.mjs +538 -0
  117. package/esm2022/app/modules/date-picker/date-picker.module.mjs +56 -0
  118. package/esm2022/app/modules/dialog/dialog.component.mjs +177 -0
  119. package/esm2022/app/modules/dialog/dialog.module.mjs +28 -0
  120. package/esm2022/app/modules/dropdown/dropdown.component.mjs +682 -0
  121. package/esm2022/app/modules/dropdown/dropdown.module.mjs +28 -0
  122. package/esm2022/app/modules/dropdown/models/dropdown-option-group.model.mjs +2 -0
  123. package/esm2022/app/modules/dropdown/models/dropdown-option.model.mjs +2 -0
  124. package/esm2022/app/modules/endpoint-state/components/endpoint-state.component.mjs +75 -0
  125. package/esm2022/app/modules/endpoint-state/endpoint-state.module.mjs +22 -0
  126. package/esm2022/app/modules/icons/components/icon-select.component.mjs +377 -0
  127. package/esm2022/app/modules/icons/models/fontawesome-icons-brands.model.mjs +471 -0
  128. package/esm2022/app/modules/icons/models/fontawesome-icons-regular.model.mjs +166 -0
  129. package/esm2022/app/modules/icons/models/fontawesome-icons-solid.model.mjs +1016 -0
  130. package/esm2022/app/modules/icons/models/particle-icons-light.model.mjs +310 -0
  131. package/esm2022/app/modules/icons/models/particle-icons-regular.model.mjs +324 -0
  132. package/esm2022/app/modules/icons/models/particle-icons-solid.model.mjs +581 -0
  133. package/esm2022/app/modules/icons/particle-icons.module.mjs +66 -0
  134. package/esm2022/app/modules/icons/services/icons.service.mjs +86 -0
  135. package/esm2022/app/modules/idle-timeout/idle-timeout.component.mjs +85 -0
  136. package/esm2022/app/modules/idle-timeout/idle-timer.mjs +66 -0
  137. package/esm2022/app/modules/idle-timeout/particle-idle-timeout.module.mjs +28 -0
  138. package/esm2022/app/modules/input-mask/input-mask.component.mjs +594 -0
  139. package/esm2022/app/modules/input-mask/input-mask.module.mjs +18 -0
  140. package/esm2022/app/modules/keyfilter/keyfilter.directive.mjs +158 -0
  141. package/esm2022/app/modules/keyfilter/keyfilter.module.mjs +18 -0
  142. package/esm2022/app/modules/layout/components/layout-full-framing/layout-full-framing.component.mjs +79 -0
  143. package/esm2022/app/modules/layout/components/layout-fullwidth-sidebar/layout-fullwidth-sidebar.component.mjs +65 -0
  144. package/esm2022/app/modules/layout/layout.module.mjs +33 -0
  145. package/esm2022/app/modules/loader/components/loader.component.mjs +30 -0
  146. package/esm2022/app/modules/loader/loader.module.mjs +24 -0
  147. package/esm2022/app/modules/multi-select/models/multi-select-option-group.model.mjs +2 -0
  148. package/esm2022/app/modules/multi-select/models/multi-select-option.model.mjs +2 -0
  149. package/esm2022/app/modules/multi-select/multi-select.component.mjs +665 -0
  150. package/esm2022/app/modules/multi-select/multi-select.module.mjs +18 -0
  151. package/esm2022/app/modules/notification/models/notification.model.mjs +2 -0
  152. package/esm2022/app/modules/notification/notification.component.mjs +122 -0
  153. package/esm2022/app/modules/notification/notification.module.mjs +18 -0
  154. package/esm2022/app/modules/notification/services/notification.service.mjs +84 -0
  155. package/esm2022/app/modules/ordinal-number-pipe/ordinal-number-pipe.module.mjs +20 -0
  156. package/esm2022/app/modules/ordinal-number-pipe/ordinal-number.pipe.mjs +49 -0
  157. package/esm2022/app/modules/paginator/pagination-event.model.mjs +29 -0
  158. package/esm2022/app/modules/paginator/paginator.component.mjs +207 -0
  159. package/esm2022/app/modules/paginator/particle-paginator.module.mjs +48 -0
  160. package/esm2022/app/modules/popover/popover.component.mjs +352 -0
  161. package/esm2022/app/modules/popover/popover.module.mjs +24 -0
  162. package/esm2022/app/modules/profile-pic/particle-profile-pic.module.mjs +28 -0
  163. package/esm2022/app/modules/profile-pic/profile-pic.component.mjs +74 -0
  164. package/esm2022/app/modules/progress-bar/progress-bar.component.mjs +43 -0
  165. package/esm2022/app/modules/progress-bar/progress-bar.module.mjs +24 -0
  166. package/esm2022/app/modules/push-container/particle-push-container.module.mjs +26 -0
  167. package/esm2022/app/modules/push-container/push-container-state.model.mjs +2 -0
  168. package/esm2022/app/modules/push-container/push-container.component.mjs +363 -0
  169. package/esm2022/app/modules/rich-text/particle-rich-text.module.mjs +64 -0
  170. package/esm2022/app/modules/rich-text/render-rich-text.component.mjs +18 -0
  171. package/esm2022/app/modules/rich-text/rich-text-capabilities.model.mjs +2 -0
  172. package/esm2022/app/modules/rich-text/rich-text.component.mjs +187 -0
  173. package/esm2022/app/modules/scroll-to-top/particle-scroll-to-top.module.mjs +24 -0
  174. package/esm2022/app/modules/scroll-to-top/scroll-to-top.component.mjs +49 -0
  175. package/esm2022/app/modules/slideover/particle-slideover.module.mjs +24 -0
  176. package/esm2022/app/modules/slideover/slideover.component.mjs +115 -0
  177. package/esm2022/app/modules/slider/slider.component.mjs +243 -0
  178. package/esm2022/app/modules/slider/slider.module.mjs +26 -0
  179. package/esm2022/app/modules/theming/components/theming.component.mjs +86 -0
  180. package/esm2022/app/modules/theming/models/theme.model.mjs +9 -0
  181. package/esm2022/app/modules/theming/services/theme-change-detection.service.mjs +38 -0
  182. package/esm2022/app/modules/theming/services/theming.service.mjs +507 -0
  183. package/esm2022/app/modules/theming/theming.module.mjs +55 -0
  184. package/esm2022/app/modules/toggle-switch/models/toggle-options.model.mjs +2 -0
  185. package/esm2022/app/modules/toggle-switch/toggle-switch.component.mjs +107 -0
  186. package/esm2022/app/modules/toggle-switch/toggle-switch.module.mjs +24 -0
  187. package/esm2022/app/modules/tooltip/tooltip.directive.mjs +381 -0
  188. package/esm2022/app/modules/tooltip/tooltip.module.mjs +18 -0
  189. package/esm2022/app/modules/week-picker/week-picker.component.mjs +511 -0
  190. package/esm2022/app/modules/week-picker/week-picker.module.mjs +40 -0
  191. package/esm2022/app/shared/enums/endpoint-status.enum.mjs +11 -0
  192. package/esm2022/app/shared/interceptors/json.interceptor.mjs +23 -0
  193. package/esm2022/app/shared/models/auditable.model.mjs +2 -0
  194. package/esm2022/app/shared/models/data-list.model.mjs +2 -0
  195. package/esm2022/app/shared/models/id.model.mjs +2 -0
  196. package/esm2022/app/shared/models/observable-container.mjs +15 -0
  197. package/esm2022/app/shared/models/particle-component-text.model.mjs +2 -0
  198. package/esm2022/app/shared/services/base-data.service.mjs +190 -0
  199. package/esm2022/app/shared/services/dialog.service.mjs +50 -0
  200. package/esm2022/app/shared/services/local-storage.service.mjs +60 -0
  201. package/esm2022/entake-particle.mjs +5 -0
  202. package/esm2022/public_api.mjs +98 -0
  203. package/fesm2022/entake-particle.mjs +12477 -0
  204. package/fesm2022/entake-particle.mjs.map +1 -0
  205. package/index.d.ts +5 -0
  206. package/package.json +65 -0
  207. package/particle.css +1 -0
  208. package/public_api.d.ts +97 -0
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { MultiSelectComponent } from './multi-select.component';
4
+ import * as i0 from "@angular/core";
5
+ export class ParticleMultiSelectModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleMultiSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: ParticleMultiSelectModule, declarations: [MultiSelectComponent], imports: [CommonModule], exports: [MultiSelectComponent] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleMultiSelectModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleMultiSelectModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [MultiSelectComponent],
14
+ imports: [CommonModule],
15
+ exports: [MultiSelectComponent]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFPaEUsTUFBTSxPQUFPLHlCQUF5Qjt1R0FBekIseUJBQXlCO3dHQUF6Qix5QkFBeUIsaUJBSnJCLG9CQUFvQixhQUN6QixZQUFZLGFBQ1osb0JBQW9CO3dHQUVuQix5QkFBeUIsWUFIMUIsWUFBWTs7MkZBR1gseUJBQXlCO2tCQUxyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL211bHRpLXNlbGVjdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtNdWx0aVNlbGVjdENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBleHBvcnRzOiBbTXVsdGlTZWxlY3RDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlTXVsdGlTZWxlY3RNb2R1bGUgeyB9XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL25vdGlmaWNhdGlvbi9tb2RlbHMvbm90aWZpY2F0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE1vZGVsIHJlcHJlc2VudGluZyBhIG5vdGlmaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24gSURcbiAgICovXG4gIGlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90aWZpY2F0aW9uIHNldmVyaXR5XG4gICAqL1xuICBzZXZlcml0eTogJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm4nIHwgJ2Vycm9yJztcblxuICAvKipcbiAgICogVGhlIG5vdGlmaWNhdGlvbiBzdW1tYXJ5XG4gICAqL1xuICBzdW1tYXJ5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24gZGV0YWlsXG4gICAqL1xuICBkZXRhaWw/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,122 @@
1
+ import { animate, animateChild, query, stagger, style, transition, trigger } from '@angular/animations';
2
+ import { Component, Input } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./services/notification.service";
5
+ import * as i2 from "@angular/common";
6
+ /**
7
+ * Component for displaying notifications
8
+ */
9
+ export class NotificationComponent {
10
+ service;
11
+ /**
12
+ * Dependency injection site
13
+ * @param service the NotificationService
14
+ */
15
+ constructor(service) {
16
+ this.service = service;
17
+ this.notifications$ = service.getNotifications();
18
+ }
19
+ text = {
20
+ dismiss: 'Dismiss'
21
+ };
22
+ /**
23
+ * Array of notifications as an Observable
24
+ */
25
+ notifications$;
26
+ /**
27
+ * Map of notification severity to color class
28
+ */
29
+ severityColorMap = {
30
+ 'success': 'bg_green',
31
+ 'warn': 'bg_orange',
32
+ 'error': 'bg_red',
33
+ 'info': 'bg_purple'
34
+ };
35
+ /**
36
+ * Map of notification severity to icon class
37
+ */
38
+ severityIconMap = {
39
+ 'success': 'fa-check-circle',
40
+ 'warn': 'fa-exclamation-circle',
41
+ 'error': 'fa-circle-xmark',
42
+ 'info': 'fa-info-circle'
43
+ };
44
+ /**
45
+ * Delete a notification
46
+ * @param id the ID of the notification to delete
47
+ */
48
+ deleteNotification(id) {
49
+ this.service.deleteNotification(id);
50
+ }
51
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NotificationComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
52
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: NotificationComponent, selector: "particle-notification", inputs: { text: "text" }, ngImport: i0, template: "<!-- TODO: figure out why closing toast that is between others causes jumpy animation -->\r\n\r\n<!-- toast -->\r\n<div class=\"particle_notification_overlay ent_r2l_row\">\r\n <!-- spacer -->\r\n <!-- container -->\r\n <div class=\"row min_w280 pad_right5\" style=\"max-width:400px;\">\r\n <div @list class=\"row_block width100 \">\r\n <!-- item -->\r\n <div *ngFor=\"let notification of notifications$ | async\"\r\n @items\r\n class=\"row ent_r2l_row v_center content_color pad_10 mar_10 shadow ptl_brdr_radius\">\r\n <div class=\"col pad_5\">\r\n <div class=\"circle_36px\" [ngClass]=\"severityColorMap[notification.severity]\">\r\n <i class=\"fas {{severityIconMap[notification.severity]}} fa-lg ent_r2l_ico\"></i>\r\n </div>\r\n </div>\r\n <div class=\"col size_1 pad_5 ent_r2l_dir rc_gap\">\r\n <div class=\"col ptl_brdr_color border_right\"></div>\r\n <div class=\"col\">\r\n <div class=\"row_block width100\">\r\n <div class=\"text lg text_left text_wrap bold ent_r2l_txt\">{{notification.summary}}</div>\r\n <div class=\"text md text_left text_wrap ent_r2l_txt\">{{notification.detail}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col\" style=\"pointer-events: all;\">\r\n <button class=\"access btnset clear\"\r\n [attr.aria-label]=\"text.dismiss\"\r\n (click)=\"deleteNotification($any(notification.id))\">\r\n <div class=\"circle_20px ptl_brdr_color ptl_brdr_size ptl_input_bg_color\">\r\n <i class=\"fas fa-times\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".particle_notification_overlay{display:flex;position:fixed;justify-content:flex-end;inset:0;z-index:var(--z-notification);pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], animations: [
53
+ // nice stagger effect when showing existing elements
54
+ trigger('list', [
55
+ transition(':enter', [
56
+ // child animation selector + stagger
57
+ query('@items', stagger(300, animateChild()), { optional: true })
58
+ ]),
59
+ ]),
60
+ trigger('items', [
61
+ // cubic-bezier for a tiny bouncing feel
62
+ transition(':enter', [
63
+ style({ transform: 'scale(0.5)', opacity: 0 }),
64
+ animate('0.65s cubic-bezier(.8,-0.6,0.2,1.5)', style({ transform: 'scale(1)', opacity: 1 }))
65
+ ]),
66
+ transition(':leave', [
67
+ style({ transform: 'scale(1)', opacity: 1, height: '*' }),
68
+ animate('0.65s cubic-bezier(.8,-0.6,0.2,1.5)', style({
69
+ transform: 'scale(0.5)',
70
+ opacity: 0,
71
+ height: '0px',
72
+ marginLeft: '0px',
73
+ marginTop: '0px',
74
+ marginRight: '0px',
75
+ marginBottom: '0px',
76
+ paddingLeft: '0px',
77
+ paddingTop: '0px',
78
+ paddingRight: '0px',
79
+ paddingBottom: '0px'
80
+ }))
81
+ ]),
82
+ ])
83
+ ] });
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NotificationComponent, decorators: [{
86
+ type: Component,
87
+ args: [{ selector: 'particle-notification', animations: [
88
+ // nice stagger effect when showing existing elements
89
+ trigger('list', [
90
+ transition(':enter', [
91
+ // child animation selector + stagger
92
+ query('@items', stagger(300, animateChild()), { optional: true })
93
+ ]),
94
+ ]),
95
+ trigger('items', [
96
+ // cubic-bezier for a tiny bouncing feel
97
+ transition(':enter', [
98
+ style({ transform: 'scale(0.5)', opacity: 0 }),
99
+ animate('0.65s cubic-bezier(.8,-0.6,0.2,1.5)', style({ transform: 'scale(1)', opacity: 1 }))
100
+ ]),
101
+ transition(':leave', [
102
+ style({ transform: 'scale(1)', opacity: 1, height: '*' }),
103
+ animate('0.65s cubic-bezier(.8,-0.6,0.2,1.5)', style({
104
+ transform: 'scale(0.5)',
105
+ opacity: 0,
106
+ height: '0px',
107
+ marginLeft: '0px',
108
+ marginTop: '0px',
109
+ marginRight: '0px',
110
+ marginBottom: '0px',
111
+ paddingLeft: '0px',
112
+ paddingTop: '0px',
113
+ paddingRight: '0px',
114
+ paddingBottom: '0px'
115
+ }))
116
+ ]),
117
+ ])
118
+ ], template: "<!-- TODO: figure out why closing toast that is between others causes jumpy animation -->\r\n\r\n<!-- toast -->\r\n<div class=\"particle_notification_overlay ent_r2l_row\">\r\n <!-- spacer -->\r\n <!-- container -->\r\n <div class=\"row min_w280 pad_right5\" style=\"max-width:400px;\">\r\n <div @list class=\"row_block width100 \">\r\n <!-- item -->\r\n <div *ngFor=\"let notification of notifications$ | async\"\r\n @items\r\n class=\"row ent_r2l_row v_center content_color pad_10 mar_10 shadow ptl_brdr_radius\">\r\n <div class=\"col pad_5\">\r\n <div class=\"circle_36px\" [ngClass]=\"severityColorMap[notification.severity]\">\r\n <i class=\"fas {{severityIconMap[notification.severity]}} fa-lg ent_r2l_ico\"></i>\r\n </div>\r\n </div>\r\n <div class=\"col size_1 pad_5 ent_r2l_dir rc_gap\">\r\n <div class=\"col ptl_brdr_color border_right\"></div>\r\n <div class=\"col\">\r\n <div class=\"row_block width100\">\r\n <div class=\"text lg text_left text_wrap bold ent_r2l_txt\">{{notification.summary}}</div>\r\n <div class=\"text md text_left text_wrap ent_r2l_txt\">{{notification.detail}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col\" style=\"pointer-events: all;\">\r\n <button class=\"access btnset clear\"\r\n [attr.aria-label]=\"text.dismiss\"\r\n (click)=\"deleteNotification($any(notification.id))\">\r\n <div class=\"circle_20px ptl_brdr_color ptl_brdr_size ptl_input_bg_color\">\r\n <i class=\"fas fa-times\"></i>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".particle_notification_overlay{display:flex;position:fixed;justify-content:flex-end;inset:0;z-index:var(--z-notification);pointer-events:none}\n"] }]
119
+ }], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { text: [{
120
+ type: Input
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsWUFBWSxFQUNaLEtBQUssRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLFVBQVUsRUFDVixPQUFPLEVBQ1IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQU0vQzs7R0FFRztBQTZDSCxNQUFNLE9BQU8scUJBQXFCO0lBT3RCO0lBTFY7OztPQUdHO0lBQ0gsWUFDVSxPQUE0QjtRQUE1QixZQUFPLEdBQVAsT0FBTyxDQUFxQjtRQUVwQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFHRCxJQUFJLEdBQXFCO1FBQ3ZCLE9BQU8sRUFBRSxTQUFTO0tBQ0MsQ0FBQztJQUV0Qjs7T0FFRztJQUNNLGNBQWMsQ0FBa0M7SUFFekQ7O09BRUc7SUFDTSxnQkFBZ0IsR0FBRztRQUMxQixTQUFTLEVBQUUsVUFBVTtRQUNyQixNQUFNLEVBQUUsV0FBVztRQUNuQixPQUFPLEVBQUUsUUFBUTtRQUNqQixNQUFNLEVBQUUsV0FBVztLQUNwQixDQUFDO0lBRUY7O09BRUc7SUFDTSxlQUFlLEdBQUc7UUFDekIsU0FBUyxFQUFFLGlCQUFpQjtRQUM1QixNQUFNLEVBQUUsdUJBQXVCO1FBQy9CLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsTUFBTSxFQUFFLGdCQUFnQjtLQUN6QixDQUFDO0lBRUY7OztPQUdH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O29DQUNuQixXQUFXLEVBQUUsS0FBSztvQ0FDbEIsVUFBVSxFQUFFLEtBQUs7b0NBQ2pCLFlBQVksRUFBRSxLQUFLO29DQUNuQixhQUFhLEVBQUUsS0FBSztpQ0FDckIsQ0FBQyxDQUNIOzZCQUNGLENBQUM7eUJBQ0gsQ0FBQztxQkFDSDt3RkFlRCxJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGFuaW1hdGUsXHJcbiAgYW5pbWF0ZUNoaWxkLFxyXG4gIHF1ZXJ5LFxyXG4gIHN0YWdnZXIsXHJcbiAgc3R5bGUsXHJcbiAgdHJhbnNpdGlvbixcclxuICB0cmlnZ2VyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9tb2RlbHMvbm90aWZpY2F0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQge05vdGlmaWNhdGlvblRleHQsIFNsaWRlb3ZlclRleHR9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbHMvcGFydGljbGUtY29tcG9uZW50LXRleHQubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyBub3RpZmljYXRpb25zXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BhcnRpY2xlLW5vdGlmaWNhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5jc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICAvLyBuaWNlIHN0YWdnZXIgZWZmZWN0IHdoZW4gc2hvd2luZyBleGlzdGluZyBlbGVtZW50c1xyXG4gICAgdHJpZ2dlcignbGlzdCcsIFtcclxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xyXG4gICAgICAgIC8vIGNoaWxkIGFuaW1hdGlvbiBzZWxlY3RvciArIHN0YWdnZXJcclxuICAgICAgICBxdWVyeShcclxuICAgICAgICAgICdAaXRlbXMnLFxyXG4gICAgICAgICAgc3RhZ2dlcigzMDAsIGFuaW1hdGVDaGlsZCgpKSxcclxuICAgICAgICAgIHsgb3B0aW9uYWw6IHRydWUgfVxyXG4gICAgICAgIClcclxuICAgICAgXSksXHJcbiAgICBdKSxcclxuICAgIHRyaWdnZXIoJ2l0ZW1zJywgW1xyXG4gICAgICAvLyBjdWJpYy1iZXppZXIgZm9yIGEgdGlueSBib3VuY2luZyBmZWVsXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3NjYWxlKDAuNSknLCBvcGFjaXR5OiAwIH0pLFxyXG4gICAgICAgIGFuaW1hdGUoJzAuNjVzIGN1YmljLWJlemllciguOCwtMC42LDAuMiwxLjUpJyxcclxuICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMSknLCBvcGFjaXR5OiAxIH0pKVxyXG4gICAgICBdKSxcclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAnc2NhbGUoMSknLCBvcGFjaXR5OiAxLCBoZWlnaHQ6ICcqJyB9KSxcclxuICAgICAgICBhbmltYXRlKCcwLjY1cyBjdWJpYy1iZXppZXIoLjgsLTAuNiwwLjIsMS41KScsXHJcbiAgICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlKDAuNSknLFxyXG4gICAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgICBoZWlnaHQ6ICcwcHgnLFxyXG4gICAgICAgICAgICBtYXJnaW5MZWZ0OiAnMHB4JyxcclxuICAgICAgICAgICAgbWFyZ2luVG9wOiAnMHB4JyxcclxuICAgICAgICAgICAgbWFyZ2luUmlnaHQ6ICcwcHgnLFxyXG4gICAgICAgICAgICBtYXJnaW5Cb3R0b206ICcwcHgnLFxyXG4gICAgICAgICAgICBwYWRkaW5nTGVmdDogJzBweCcsXHJcbiAgICAgICAgICAgIHBhZGRpbmdUb3A6ICcwcHgnLFxyXG4gICAgICAgICAgICBwYWRkaW5nUmlnaHQ6ICcwcHgnLFxyXG4gICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAnMHB4J1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgIF0pLFxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db21wb25lbnQge1xyXG5cclxuICAvKipcclxuICAgKiBEZXBlbmRlbmN5IGluamVjdGlvbiBzaXRlXHJcbiAgICogQHBhcmFtIHNlcnZpY2UgdGhlIE5vdGlmaWNhdGlvblNlcnZpY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5ub3RpZmljYXRpb25zJCA9IHNlcnZpY2UuZ2V0Tm90aWZpY2F0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICB0ZXh0OiBOb3RpZmljYXRpb25UZXh0ID0ge1xyXG4gICAgZGlzbWlzczogJ0Rpc21pc3MnXHJcbiAgfSBhcyBOb3RpZmljYXRpb25UZXh0O1xyXG5cclxuICAvKipcclxuICAgKiBBcnJheSBvZiBub3RpZmljYXRpb25zIGFzIGFuIE9ic2VydmFibGVcclxuICAgKi9cclxuICByZWFkb25seSBub3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxBcnJheTxOb3RpZmljYXRpb24+PjtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFwIG9mIG5vdGlmaWNhdGlvbiBzZXZlcml0eSB0byBjb2xvciBjbGFzc1xyXG4gICAqL1xyXG4gIHJlYWRvbmx5IHNldmVyaXR5Q29sb3JNYXAgPSB7XHJcbiAgICAnc3VjY2Vzcyc6ICdiZ19ncmVlbicsXHJcbiAgICAnd2Fybic6ICdiZ19vcmFuZ2UnLFxyXG4gICAgJ2Vycm9yJzogJ2JnX3JlZCcsXHJcbiAgICAnaW5mbyc6ICdiZ19wdXJwbGUnXHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFwIG9mIG5vdGlmaWNhdGlvbiBzZXZlcml0eSB0byBpY29uIGNsYXNzXHJcbiAgICovXHJcbiAgcmVhZG9ubHkgc2V2ZXJpdHlJY29uTWFwID0ge1xyXG4gICAgJ3N1Y2Nlc3MnOiAnZmEtY2hlY2stY2lyY2xlJyxcclxuICAgICd3YXJuJzogJ2ZhLWV4Y2xhbWF0aW9uLWNpcmNsZScsXHJcbiAgICAnZXJyb3InOiAnZmEtY2lyY2xlLXhtYXJrJyxcclxuICAgICdpbmZvJzogJ2ZhLWluZm8tY2lyY2xlJ1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSBhIG5vdGlmaWNhdGlvblxyXG4gICAqIEBwYXJhbSBpZCB0aGUgSUQgb2YgdGhlIG5vdGlmaWNhdGlvbiB0byBkZWxldGVcclxuICAgKi9cclxuICBkZWxldGVOb3RpZmljYXRpb24oaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZU5vdGlmaWNhdGlvbihpZCk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gVE9ETzogZmlndXJlIG91dCB3aHkgY2xvc2luZyB0b2FzdCB0aGF0IGlzIGJldHdlZW4gb3RoZXJzIGNhdXNlcyBqdW1weSBhbmltYXRpb24gLS0+XHJcblxyXG48IS0tIHRvYXN0IC0tPlxyXG48ZGl2IGNsYXNzPVwicGFydGljbGVfbm90aWZpY2F0aW9uX292ZXJsYXkgZW50X3IybF9yb3dcIj5cclxuICA8IS0tIHNwYWNlciAtLT5cclxuICA8IS0tIGNvbnRhaW5lciAtLT5cclxuICA8ZGl2IGNsYXNzPVwicm93IG1pbl93MjgwIHBhZF9yaWdodDVcIiBzdHlsZT1cIm1heC13aWR0aDo0MDBweDtcIj5cclxuICAgIDxkaXYgQGxpc3QgY2xhc3M9XCJyb3dfYmxvY2sgd2lkdGgxMDAgXCI+XHJcbiAgICAgIDwhLS0gaXRlbSAtLT5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIG5vdGlmaWNhdGlvbnMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgIEBpdGVtc1xyXG4gICAgICAgICAgIGNsYXNzPVwicm93IGVudF9yMmxfcm93IHZfY2VudGVyIGNvbnRlbnRfY29sb3IgcGFkXzEwIG1hcl8xMCBzaGFkb3cgcHRsX2JyZHJfcmFkaXVzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBwYWRfNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNpcmNsZV8zNnB4XCIgW25nQ2xhc3NdPVwic2V2ZXJpdHlDb2xvck1hcFtub3RpZmljYXRpb24uc2V2ZXJpdHldXCI+XHJcbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIHt7c2V2ZXJpdHlJY29uTWFwW25vdGlmaWNhdGlvbi5zZXZlcml0eV19fSBmYS1sZyBlbnRfcjJsX2ljb1wiPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgc2l6ZV8xIHBhZF81IGVudF9yMmxfZGlyIHJjX2dhcFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBwdGxfYnJkcl9jb2xvciBib3JkZXJfcmlnaHRcIj48L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd19ibG9jayB3aWR0aDEwMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IGxnIHRleHRfbGVmdCB0ZXh0X3dyYXAgYm9sZCBlbnRfcjJsX3R4dFwiPnt7bm90aWZpY2F0aW9uLnN1bW1hcnl9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0IG1kIHRleHRfbGVmdCB0ZXh0X3dyYXAgZW50X3IybF90eHRcIj57e25vdGlmaWNhdGlvbi5kZXRhaWx9fTwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIiBzdHlsZT1cInBvaW50ZXItZXZlbnRzOiBhbGw7XCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWNjZXNzIGJ0bnNldCBjbGVhclwiXHJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwidGV4dC5kaXNtaXNzXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZU5vdGlmaWNhdGlvbigkYW55KG5vdGlmaWNhdGlvbi5pZCkpXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaXJjbGVfMjBweCBwdGxfYnJkcl9jb2xvciBwdGxfYnJkcl9zaXplIHB0bF9pbnB1dF9iZ19jb2xvclwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NotificationComponent } from './notification.component';
4
+ import * as i0 from "@angular/core";
5
+ export class ParticleNotificationModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: ParticleNotificationModule, declarations: [NotificationComponent], imports: [CommonModule], exports: [NotificationComponent] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleNotificationModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleNotificationModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [NotificationComponent],
14
+ imports: [CommonModule],
15
+ exports: [NotificationComponent]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQzs7QUFPL0QsTUFBTSxPQUFPLDBCQUEwQjt1R0FBMUIsMEJBQTBCO3dHQUExQiwwQkFBMEIsaUJBSnRCLHFCQUFxQixhQUMxQixZQUFZLGFBQ1oscUJBQXFCO3dHQUVwQiwwQkFBMEIsWUFIM0IsWUFBWTs7MkZBR1gsMEJBQTBCO2tCQUx0QyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtOb3RpZmljYXRpb25Db21wb25lbnR9IGZyb20gJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW05vdGlmaWNhdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgZXhwb3J0czogW05vdGlmaWNhdGlvbkNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBhcnRpY2xlTm90aWZpY2F0aW9uTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,84 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Service for adding/deleting notifications
6
+ */
7
+ export class NotificationService {
8
+ /**
9
+ * Valid characters that a notification ID can be composed from
10
+ * @private
11
+ */
12
+ static ID_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
13
+ /**
14
+ * BehaviorSubject tracking an array of active notifications
15
+ * @private
16
+ */
17
+ _notifications = new BehaviorSubject([]);
18
+ /**
19
+ * The number of milliseconds before an added notification automatically removes itself.
20
+ * Defaults to 3000 milliseconds
21
+ * @private
22
+ */
23
+ notificationLife = 3000;
24
+ /**
25
+ * Generate a random ID
26
+ * @private
27
+ */
28
+ static generateId() {
29
+ let result = '';
30
+ for (let i = 0; i < 10; i++) {
31
+ result += this.ID_CHARACTERS.charAt(Math.floor(Math.random() * this.ID_CHARACTERS.length));
32
+ }
33
+ return result;
34
+ }
35
+ /**
36
+ * Dependency injection site
37
+ */
38
+ constructor() { }
39
+ /**
40
+ * Add a notification
41
+ * @param notification the notification to add
42
+ */
43
+ add(notification) {
44
+ notification.id = NotificationService.generateId();
45
+ const notifications = this._notifications.getValue();
46
+ notifications.push(notification);
47
+ this._notifications.next(notifications);
48
+ setTimeout(() => this.deleteNotification(notification.id), this.notificationLife);
49
+ }
50
+ /**
51
+ * Delete a notification
52
+ * @param id the ID of the notification to delete
53
+ */
54
+ deleteNotification(id) {
55
+ const notifications = this._notifications.getValue();
56
+ const foundIndex = notifications.findIndex(notification => notification.id === id);
57
+ if (foundIndex > -1) {
58
+ notifications.splice(foundIndex, 1);
59
+ }
60
+ this._notifications.next(notifications);
61
+ }
62
+ /**
63
+ * Get notifications as an Observable
64
+ */
65
+ getNotifications() {
66
+ return this._notifications.asObservable();
67
+ }
68
+ /**
69
+ * Set the number of milliseconds before added notifications disappear
70
+ * @param milliseconds the number of milliseconds to set
71
+ */
72
+ setNotificationLife(milliseconds) {
73
+ this.notificationLife = milliseconds;
74
+ }
75
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
76
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NotificationService, providedIn: 'root' });
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: NotificationService, decorators: [{
79
+ type: Injectable,
80
+ args: [{
81
+ providedIn: 'root'
82
+ }]
83
+ }], ctorParameters: () => [] });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvbm90aWZpY2F0aW9uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7QUFHbkQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCOzs7T0FHRztJQUNLLE1BQU0sQ0FBVSxhQUFhLEdBQUcsZ0VBQWdFLENBQUM7SUFFekc7OztPQUdHO0lBQ2MsY0FBYyxHQUFHLElBQUksZUFBZSxDQUFzQixFQUFFLENBQUMsQ0FBQztJQUUvRTs7OztPQUlHO0lBQ0ssZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0lBRWhDOzs7T0FHRztJQUNLLE1BQU0sQ0FBQyxVQUFVO1FBQ3ZCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM3RixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUM7SUFFakI7OztPQUdHO0lBQ0gsR0FBRyxDQUFDLFlBQTBCO1FBQzVCLFlBQVksQ0FBQyxFQUFFLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbkQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRCxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXhDLFVBQVUsQ0FDUixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLEVBQVksQ0FBQyxFQUN4RCxJQUFJLENBQUMsZ0JBQWdCLENBQ3RCLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsa0JBQWtCLENBQUMsRUFBVTtRQUMzQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRW5GLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDcEIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUJBQW1CLENBQUMsWUFBb0I7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFlBQVksQ0FBQztJQUN2QyxDQUFDO3VHQXRGVSxtQkFBbUI7MkdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL25vdGlmaWNhdGlvbi5tb2RlbCc7XHJcblxyXG4vKipcclxuICogU2VydmljZSBmb3IgYWRkaW5nL2RlbGV0aW5nIG5vdGlmaWNhdGlvbnNcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblNlcnZpY2Uge1xyXG5cclxuICAvKipcclxuICAgKiBWYWxpZCBjaGFyYWN0ZXJzIHRoYXQgYSBub3RpZmljYXRpb24gSUQgY2FuIGJlIGNvbXBvc2VkIGZyb21cclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IElEX0NIQVJBQ1RFUlMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xyXG5cclxuICAvKipcclxuICAgKiBCZWhhdmlvclN1YmplY3QgdHJhY2tpbmcgYW4gYXJyYXkgb2YgYWN0aXZlIG5vdGlmaWNhdGlvbnNcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX25vdGlmaWNhdGlvbnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PE5vdGlmaWNhdGlvbj4+KFtdKTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG51bWJlciBvZiBtaWxsaXNlY29uZHMgYmVmb3JlIGFuIGFkZGVkIG5vdGlmaWNhdGlvbiBhdXRvbWF0aWNhbGx5IHJlbW92ZXMgaXRzZWxmLlxyXG4gICAqIERlZmF1bHRzIHRvIDMwMDAgbWlsbGlzZWNvbmRzXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIG5vdGlmaWNhdGlvbkxpZmUgPSAzMDAwO1xyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZSBhIHJhbmRvbSBJRFxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGF0aWMgZ2VuZXJhdGVJZCgpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdCA9ICcnO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTA7IGkrKykge1xyXG4gICAgICByZXN1bHQgKz0gdGhpcy5JRF9DSEFSQUNURVJTLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiB0aGlzLklEX0NIQVJBQ1RFUlMubGVuZ3RoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlcGVuZGVuY3kgaW5qZWN0aW9uIHNpdGVcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGQgYSBub3RpZmljYXRpb25cclxuICAgKiBAcGFyYW0gbm90aWZpY2F0aW9uIHRoZSBub3RpZmljYXRpb24gdG8gYWRkXHJcbiAgICovXHJcbiAgYWRkKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCB7XHJcbiAgICBub3RpZmljYXRpb24uaWQgPSBOb3RpZmljYXRpb25TZXJ2aWNlLmdlbmVyYXRlSWQoKTtcclxuXHJcbiAgICBjb25zdCBub3RpZmljYXRpb25zID0gdGhpcy5fbm90aWZpY2F0aW9ucy5nZXRWYWx1ZSgpO1xyXG4gICAgbm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbik7XHJcblxyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucy5uZXh0KG5vdGlmaWNhdGlvbnMpO1xyXG5cclxuICAgIHNldFRpbWVvdXQoXHJcbiAgICAgICgpID0+IHRoaXMuZGVsZXRlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5pZCBhcyBzdHJpbmcpLFxyXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbkxpZmVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGUgYSBub3RpZmljYXRpb25cclxuICAgKiBAcGFyYW0gaWQgdGhlIElEIG9mIHRoZSBub3RpZmljYXRpb24gdG8gZGVsZXRlXHJcbiAgICovXHJcbiAgZGVsZXRlTm90aWZpY2F0aW9uKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5vdGlmaWNhdGlvbnMgPSB0aGlzLl9ub3RpZmljYXRpb25zLmdldFZhbHVlKCk7XHJcbiAgICBjb25zdCBmb3VuZEluZGV4ID0gbm90aWZpY2F0aW9ucy5maW5kSW5kZXgobm90aWZpY2F0aW9uID0+IG5vdGlmaWNhdGlvbi5pZCA9PT0gaWQpO1xyXG5cclxuICAgIGlmIChmb3VuZEluZGV4ID4gLTEpIHtcclxuICAgICAgbm90aWZpY2F0aW9ucy5zcGxpY2UoZm91bmRJbmRleCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucy5uZXh0KG5vdGlmaWNhdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IG5vdGlmaWNhdGlvbnMgYXMgYW4gT2JzZXJ2YWJsZVxyXG4gICAqL1xyXG4gIGdldE5vdGlmaWNhdGlvbnMoKTogT2JzZXJ2YWJsZTxBcnJheTxOb3RpZmljYXRpb24+PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbm90aWZpY2F0aW9ucy5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBiZWZvcmUgYWRkZWQgbm90aWZpY2F0aW9ucyBkaXNhcHBlYXJcclxuICAgKiBAcGFyYW0gbWlsbGlzZWNvbmRzIHRoZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzIHRvIHNldFxyXG4gICAqL1xyXG4gIHNldE5vdGlmaWNhdGlvbkxpZmUobWlsbGlzZWNvbmRzOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uTGlmZSA9IG1pbGxpc2Vjb25kcztcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { OrdinalNumberPipe } from './ordinal-number.pipe';
4
+ import * as i0 from "@angular/core";
5
+ export class ParticleOrdinalNumberPipeModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleOrdinalNumberPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: ParticleOrdinalNumberPipeModule, declarations: [OrdinalNumberPipe], imports: [CommonModule], exports: [OrdinalNumberPipe] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleOrdinalNumberPipeModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleOrdinalNumberPipeModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [OrdinalNumberPipe],
14
+ imports: [
15
+ CommonModule
16
+ ],
17
+ exports: [OrdinalNumberPipe]
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkaW5hbC1udW1iZXItcGlwZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvb3JkaW5hbC1udW1iZXItcGlwZS9vcmRpbmFsLW51bWJlci1waXBlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFTMUQsTUFBTSxPQUFPLCtCQUErQjt1R0FBL0IsK0JBQStCO3dHQUEvQiwrQkFBK0IsaUJBTjNCLGlCQUFpQixhQUU5QixZQUFZLGFBRUosaUJBQWlCO3dHQUVoQiwrQkFBK0IsWUFKeEMsWUFBWTs7MkZBSUgsK0JBQStCO2tCQVAzQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO29CQUNqQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztpQkFDN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE9yZGluYWxOdW1iZXJQaXBlIH0gZnJvbSAnLi9vcmRpbmFsLW51bWJlci5waXBlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbT3JkaW5hbE51bWJlclBpcGVdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtPcmRpbmFsTnVtYmVyUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgUGFydGljbGVPcmRpbmFsTnVtYmVyUGlwZU1vZHVsZSB7IH1cbiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Pipe to transform an input number into its ordinal format
5
+ */
6
+ export class OrdinalNumberPipe {
7
+ /**
8
+ * Transform the input number/string (must be a valid number if string)
9
+ * into Ordinal format (1 -> 1st, 2 -> 2nd, etc)
10
+ * @param value the number to transform
11
+ */
12
+ transform(value) {
13
+ let stringifiedNumber = '';
14
+ if (typeof value === 'string' && !isNaN(Number(value))) {
15
+ stringifiedNumber = value;
16
+ }
17
+ else if (typeof value === 'number') {
18
+ stringifiedNumber = String(value);
19
+ }
20
+ let ordinalSuffix;
21
+ if (stringifiedNumber.endsWith('11') ||
22
+ stringifiedNumber.endsWith('12') ||
23
+ stringifiedNumber.endsWith('13')) {
24
+ ordinalSuffix = 'th';
25
+ }
26
+ else if (stringifiedNumber.endsWith('1')) {
27
+ ordinalSuffix = 'st';
28
+ }
29
+ else if (stringifiedNumber.endsWith('2')) {
30
+ ordinalSuffix = 'nd';
31
+ }
32
+ else if (stringifiedNumber.endsWith('3')) {
33
+ ordinalSuffix = 'rd';
34
+ }
35
+ else {
36
+ ordinalSuffix = 'th';
37
+ }
38
+ return stringifiedNumber + ordinalSuffix;
39
+ }
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: OrdinalNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
41
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: OrdinalNumberPipe, name: "ordinalNumber" });
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: OrdinalNumberPipe, decorators: [{
44
+ type: Pipe,
45
+ args: [{
46
+ name: 'ordinalNumber'
47
+ }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkaW5hbC1udW1iZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9vcmRpbmFsLW51bWJlci1waXBlL29yZGluYWwtbnVtYmVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBEOztHQUVHO0FBSUgsTUFBTSxPQUFPLGlCQUFpQjtJQUU1Qjs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLEtBQXNCO1FBQzlCLElBQUksaUJBQWlCLEdBQVcsRUFBRSxDQUFDO1FBQ25DLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkQsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzVCLENBQUM7YUFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3JDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsSUFBSSxhQUFxQixDQUFDO1FBQzFCLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNoQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2hDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFDbEMsQ0FBQztZQUNELGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0MsYUFBYSxHQUFHLElBQUksQ0FBQztRQUN2QixDQUFDO2FBQU0sSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzNDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDdkIsQ0FBQzthQUFNLENBQUM7WUFDTixhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLGlCQUFpQixHQUFHLGFBQWEsQ0FBQztJQUMzQyxDQUFDO3VHQWhDVSxpQkFBaUI7cUdBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFIN0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsZUFBZTtpQkFDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogUGlwZSB0byB0cmFuc2Zvcm0gYW4gaW5wdXQgbnVtYmVyIGludG8gaXRzIG9yZGluYWwgZm9ybWF0XHJcbiAqL1xyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ29yZGluYWxOdW1iZXInXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPcmRpbmFsTnVtYmVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG5cclxuICAvKipcclxuICAgKiBUcmFuc2Zvcm0gdGhlIGlucHV0IG51bWJlci9zdHJpbmcgKG11c3QgYmUgYSB2YWxpZCBudW1iZXIgaWYgc3RyaW5nKVxyXG4gICAqIGludG8gT3JkaW5hbCBmb3JtYXQgKDEgLT4gMXN0LCAyIC0+IDJuZCwgZXRjKVxyXG4gICAqIEBwYXJhbSB2YWx1ZSB0aGUgbnVtYmVyIHRvIHRyYW5zZm9ybVxyXG4gICAqL1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCBzdHJpbmdpZmllZE51bWJlcjogc3RyaW5nID0gJyc7XHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcclxuICAgICAgc3RyaW5naWZpZWROdW1iZXIgPSB2YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgICBzdHJpbmdpZmllZE51bWJlciA9IFN0cmluZyh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG9yZGluYWxTdWZmaXg6IHN0cmluZztcclxuICAgIGlmIChzdHJpbmdpZmllZE51bWJlci5lbmRzV2l0aCgnMTEnKSB8fFxyXG4gICAgICAgIHN0cmluZ2lmaWVkTnVtYmVyLmVuZHNXaXRoKCcxMicpIHx8XHJcbiAgICAgICAgc3RyaW5naWZpZWROdW1iZXIuZW5kc1dpdGgoJzEzJylcclxuICAgICkge1xyXG4gICAgICBvcmRpbmFsU3VmZml4ID0gJ3RoJztcclxuICAgIH0gZWxzZSBpZiAoc3RyaW5naWZpZWROdW1iZXIuZW5kc1dpdGgoJzEnKSkge1xyXG4gICAgICBvcmRpbmFsU3VmZml4ID0gJ3N0JztcclxuICAgIH0gZWxzZSBpZiAoc3RyaW5naWZpZWROdW1iZXIuZW5kc1dpdGgoJzInKSkge1xyXG4gICAgICBvcmRpbmFsU3VmZml4ID0gJ25kJztcclxuICAgIH0gZWxzZSBpZiAoc3RyaW5naWZpZWROdW1iZXIuZW5kc1dpdGgoJzMnKSkge1xyXG4gICAgICBvcmRpbmFsU3VmZml4ID0gJ3JkJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG9yZGluYWxTdWZmaXggPSAndGgnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzdHJpbmdpZmllZE51bWJlciArIG9yZGluYWxTdWZmaXg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Representation of a pagination event
3
+ */
4
+ export class PaginationEvent {
5
+ /**
6
+ * Current Page
7
+ */
8
+ activePage;
9
+ /**
10
+ * Size of a Page
11
+ */
12
+ pageSize;
13
+ /**
14
+ * Total Size to paginate over
15
+ */
16
+ totalLength;
17
+ /**
18
+ * Constructor that takes all variables to easily emit it in the event of pagination or page size change.
19
+ * @param activePage
20
+ * @param pageSize
21
+ * @param totalLength
22
+ */
23
+ constructor(activePage, pageSize, totalLength) {
24
+ this.activePage = activePage;
25
+ this.pageSize = pageSize;
26
+ this.totalLength = totalLength;
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1ldmVudC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9wYWdpbmF0b3IvcGFnaW5hdGlvbi1ldmVudC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBRTFCOztPQUVHO0lBQ0gsVUFBVSxDQUFTO0lBRW5COztPQUVHO0lBQ0gsUUFBUSxDQUFTO0lBRWpCOztPQUVHO0lBQ0gsV0FBVyxDQUFTO0lBRXBCOzs7OztPQUtHO0lBQ0gsWUFBWSxVQUFrQixFQUFFLFFBQWdCLEVBQUUsV0FBbUI7UUFDbkUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXByZXNlbnRhdGlvbiBvZiBhIHBhZ2luYXRpb24gZXZlbnRcbiAqL1xuZXhwb3J0IGNsYXNzIFBhZ2luYXRpb25FdmVudCB7XG5cbiAgLyoqXG4gICAqIEN1cnJlbnQgUGFnZVxuICAgKi9cbiAgYWN0aXZlUGFnZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIGEgUGFnZVxuICAgKi9cbiAgcGFnZVNpemU6IG51bWJlcjtcblxuICAvKipcbiAgICogVG90YWwgU2l6ZSB0byBwYWdpbmF0ZSBvdmVyXG4gICAqL1xuICB0b3RhbExlbmd0aDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RvciB0aGF0IHRha2VzIGFsbCB2YXJpYWJsZXMgdG8gZWFzaWx5IGVtaXQgaXQgaW4gdGhlIGV2ZW50IG9mIHBhZ2luYXRpb24gb3IgcGFnZSBzaXplIGNoYW5nZS5cbiAgICogQHBhcmFtIGFjdGl2ZVBhZ2VcbiAgICogQHBhcmFtIHBhZ2VTaXplXG4gICAqIEBwYXJhbSB0b3RhbExlbmd0aFxuICAgKi9cbiAgY29uc3RydWN0b3IoYWN0aXZlUGFnZTogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCB0b3RhbExlbmd0aDogbnVtYmVyKSB7XG4gICAgdGhpcy5hY3RpdmVQYWdlID0gYWN0aXZlUGFnZTtcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgdGhpcy50b3RhbExlbmd0aCA9IHRvdGFsTGVuZ3RoO1xuICB9XG5cbn1cbiJdfQ==