@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,66 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ParticleTooltipModule } from '../tooltip/tooltip.module';
4
+ import { ParticleIconsRegular } from './models/particle-icons-regular.model';
5
+ import { ParticleIconsLight } from './models/particle-icons-light.model';
6
+ import { ParticleIconsSolid } from './models/particle-icons-solid.model';
7
+ import { IconSelectComponent } from './components/icon-select.component';
8
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
9
+ import { ParticleDialogModule } from '../dialog/dialog.module';
10
+ import { IconsService } from './services/icons.service';
11
+ import { ParticleEndpointStateModule } from '../endpoint-state/endpoint-state.module';
12
+ import * as i0 from "@angular/core";
13
+ /**
14
+ * Reference to the Font Awesome variable to add icons
15
+ */
16
+ const FontAwesome = window['FontAwesome'];
17
+ export class ParticleIconsModule {
18
+ constructor() {
19
+ if (!FontAwesome) {
20
+ return;
21
+ }
22
+ for (const icon of ParticleIconsLight.icons) {
23
+ FontAwesome.library.add(icon);
24
+ }
25
+ for (const icon of ParticleIconsRegular.icons) {
26
+ FontAwesome.library.add(icon);
27
+ }
28
+ for (const icon of ParticleIconsSolid.icons) {
29
+ FontAwesome.library.add(icon);
30
+ }
31
+ }
32
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
33
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, declarations: [IconSelectComponent], imports: [CommonModule,
34
+ FormsModule,
35
+ ReactiveFormsModule,
36
+ ParticleTooltipModule,
37
+ ParticleDialogModule,
38
+ ParticleEndpointStateModule], exports: [IconSelectComponent] });
39
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, providers: [IconsService], imports: [CommonModule,
40
+ FormsModule,
41
+ ReactiveFormsModule,
42
+ ParticleTooltipModule,
43
+ ParticleDialogModule,
44
+ ParticleEndpointStateModule] });
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIconsModule, decorators: [{
47
+ type: NgModule,
48
+ args: [{
49
+ declarations: [
50
+ IconSelectComponent
51
+ ],
52
+ imports: [
53
+ CommonModule,
54
+ FormsModule,
55
+ ReactiveFormsModule,
56
+ ParticleTooltipModule,
57
+ ParticleDialogModule,
58
+ ParticleEndpointStateModule
59
+ ],
60
+ exports: [
61
+ IconSelectComponent
62
+ ],
63
+ providers: [IconsService]
64
+ }]
65
+ }], ctorParameters: () => [] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGUtaWNvbnMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2ljb25zL3BhcnRpY2xlLWljb25zLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDN0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOztBQUVwRjs7R0FFRztBQUNILE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxhQUFvQixDQUFRLENBQUM7QUFtQnhELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUI7UUFDRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLG9CQUFvQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxLQUFLLE1BQU0sSUFBSSxJQUFJLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzVDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7SUFDSCxDQUFDO3VHQWxCVSxtQkFBbUI7d0dBQW5CLG1CQUFtQixpQkFmNUIsbUJBQW1CLGFBR25CLFlBQVk7WUFDWixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsMkJBQTJCLGFBRzNCLG1CQUFtQjt3R0FJVixtQkFBbUIsYUFGbkIsQ0FBQyxZQUFZLENBQUMsWUFWdkIsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLG9CQUFvQjtZQUNwQiwyQkFBMkI7OzJGQU9sQixtQkFBbUI7a0JBakIvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3FCQUNwQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQzFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1BhcnRpY2xlVG9vbHRpcE1vZHVsZX0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLm1vZHVsZSc7XHJcbmltcG9ydCB7UGFydGljbGVJY29uc1JlZ3VsYXJ9IGZyb20gJy4vbW9kZWxzL3BhcnRpY2xlLWljb25zLXJlZ3VsYXIubW9kZWwnO1xyXG5pbXBvcnQge1BhcnRpY2xlSWNvbnNMaWdodH0gZnJvbSAnLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtbGlnaHQubW9kZWwnO1xyXG5pbXBvcnQge1BhcnRpY2xlSWNvbnNTb2xpZH0gZnJvbSAnLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtc29saWQubW9kZWwnO1xyXG5pbXBvcnQge0ljb25TZWxlY3RDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9pY29uLXNlbGVjdC5jb21wb25lbnQnO1xyXG5pbXBvcnQge0Zvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7UGFydGljbGVEaWFsb2dNb2R1bGV9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcclxuaW1wb3J0IHtJY29uc1NlcnZpY2V9IGZyb20gJy4vc2VydmljZXMvaWNvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7UGFydGljbGVFbmRwb2ludFN0YXRlTW9kdWxlfSBmcm9tICcuLi9lbmRwb2ludC1zdGF0ZS9lbmRwb2ludC1zdGF0ZS5tb2R1bGUnO1xyXG5cclxuLyoqXHJcbiAqIFJlZmVyZW5jZSB0byB0aGUgRm9udCBBd2Vzb21lIHZhcmlhYmxlIHRvIGFkZCBpY29uc1xyXG4gKi9cclxuY29uc3QgRm9udEF3ZXNvbWUgPSB3aW5kb3dbJ0ZvbnRBd2Vzb21lJyBhcyBhbnldIGFzIGFueTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBJY29uU2VsZWN0Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBQYXJ0aWNsZVRvb2x0aXBNb2R1bGUsXHJcbiAgICBQYXJ0aWNsZURpYWxvZ01vZHVsZSxcclxuICAgIFBhcnRpY2xlRW5kcG9pbnRTdGF0ZU1vZHVsZVxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSWNvblNlbGVjdENvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbSWNvbnNTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFydGljbGVJY29uc01vZHVsZSB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgaWYgKCFGb250QXdlc29tZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpY29uIG9mIFBhcnRpY2xlSWNvbnNMaWdodC5pY29ucykge1xyXG4gICAgICBGb250QXdlc29tZS5saWJyYXJ5LmFkZChpY29uKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IGljb24gb2YgUGFydGljbGVJY29uc1JlZ3VsYXIuaWNvbnMpIHtcclxuICAgICAgRm9udEF3ZXNvbWUubGlicmFyeS5hZGQoaWNvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBpY29uIG9mIFBhcnRpY2xlSWNvbnNTb2xpZC5pY29ucykge1xyXG4gICAgICBGb250QXdlc29tZS5saWJyYXJ5LmFkZChpY29uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,86 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { FontawesomeIconsBrands } from '../models/fontawesome-icons-brands.model';
3
+ import { FontawesomeIconsRegular } from '../models/fontawesome-icons-regular.model';
4
+ import { FontawesomeIconsSolid } from '../models/fontawesome-icons-solid.model';
5
+ import { ParticleIconsLight } from '../models/particle-icons-light.model';
6
+ import { ParticleIconsRegular } from '../models/particle-icons-regular.model';
7
+ import { ParticleIconsSolid } from '../models/particle-icons-solid.model';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * Service for filtering Particle/Fontawesome icons
11
+ */
12
+ export class IconsService {
13
+ /**
14
+ * Get Fontawesome icons filtered by icon type
15
+ * @param filter the icon type to filter by
16
+ * @private
17
+ */
18
+ static getFontawesomeIcons(filter) {
19
+ const icons = [];
20
+ if (filter === 'all' || filter === 'solid') {
21
+ icons.push(...FontawesomeIconsSolid.ICONS.map(icon => ({ prefix: FontawesomeIconsSolid.PREFIX, name: icon })));
22
+ }
23
+ if (filter === 'all' || filter === 'regular') {
24
+ icons.push(...FontawesomeIconsRegular.ICONS.map(icon => ({ prefix: FontawesomeIconsRegular.PREFIX, name: icon })));
25
+ }
26
+ if (filter === 'all' || filter === 'brands') {
27
+ icons.push(...FontawesomeIconsBrands.ICONS.map(icon => ({ prefix: FontawesomeIconsBrands.PREFIX, name: icon })));
28
+ }
29
+ return icons;
30
+ }
31
+ /**
32
+ * Get Particle icons filtered by icon type
33
+ * @param filter the icon type to filter by
34
+ * @private
35
+ */
36
+ static getParticleIcons(filter) {
37
+ const icons = [];
38
+ if (filter === 'all' || filter === 'solid') {
39
+ icons.push(...ParticleIconsSolid.icons.map(icon => ({ prefix: icon.prefix, name: `fa-${icon.iconName}` })));
40
+ }
41
+ if (filter === 'all' || filter === 'regular') {
42
+ icons.push(...ParticleIconsRegular.icons.map(icon => ({ prefix: icon.prefix, name: `fa-${icon.iconName}` })));
43
+ }
44
+ if (filter === 'all' || filter === 'light') {
45
+ icons.push(...ParticleIconsLight.icons.map(icon => ({ prefix: icon.prefix, name: `fa-${icon.iconName}` })));
46
+ }
47
+ return icons;
48
+ }
49
+ /**
50
+ * Constructor
51
+ */
52
+ constructor() { }
53
+ /**
54
+ * Get a list of icons (as strings) containing both Particle icons
55
+ * and Fontawesome icons that match their respective filter criteria
56
+ * @param iconType the type of icon, or all icons
57
+ * @param filter the icon styling to filter by
58
+ * @param searchText the search text to filter icons by
59
+ */
60
+ getIcons(iconType, filter, searchText = '') {
61
+ let icons = [];
62
+ if (iconType === 'all' || iconType === 'particle') {
63
+ const particleIcons = IconsService.getParticleIcons(filter);
64
+ if (particleIcons.length) {
65
+ icons.push(...particleIcons);
66
+ }
67
+ }
68
+ if (iconType === 'all' || iconType === 'fontawesome') {
69
+ const fontawesomeIcons = IconsService.getFontawesomeIcons(filter);
70
+ if (fontawesomeIcons.length) {
71
+ icons.push(...fontawesomeIcons);
72
+ }
73
+ }
74
+ const trimmedSearchText = searchText.trim().toLowerCase();
75
+ if (trimmedSearchText) {
76
+ icons = icons.filter(icon => icon.name.includes(trimmedSearchText));
77
+ }
78
+ return icons;
79
+ }
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
81
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconsService });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IconsService, decorators: [{
84
+ type: Injectable
85
+ }], ctorParameters: () => [] });
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pY29ucy9zZXJ2aWNlcy9pY29ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBWTFFOztHQUVHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFFdkI7Ozs7T0FJRztJQUNLLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFtQztRQUNwRSxNQUFNLEtBQUssR0FBNEMsRUFBRSxDQUFDO1FBRTFELElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDM0MsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakgsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDN0MsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckgsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLEtBQUssSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkgsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBZ0M7UUFDOUQsTUFBTSxLQUFLLEdBQTRDLEVBQUUsQ0FBQztRQUUxRCxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLENBQUM7UUFFRCxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hILENBQUM7UUFFRCxJQUFJLE1BQU0sS0FBSyxLQUFLLElBQUksTUFBTSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzNDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlHLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDO0lBRWpCOzs7Ozs7T0FNRztJQUNILFFBQVEsQ0FDTixRQUE0QyxFQUM1QyxNQUE4RCxFQUM5RCxVQUFVLEdBQUcsRUFBRTtRQUVmLElBQUksS0FBSyxHQUE0QyxFQUFFLENBQUM7UUFFeEQsSUFBSSxRQUFRLEtBQUssS0FBSyxJQUFJLFFBQVEsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsRCxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBa0MsQ0FBQyxDQUFDO1lBRXhGLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxLQUFLLElBQUksUUFBUSxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ3JELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLG1CQUFtQixDQUFDLE1BQXFDLENBQUMsQ0FBQztZQUVqRyxJQUFJLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztZQUNsQyxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFELElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3VHQXpGVSxZQUFZOzJHQUFaLFlBQVk7OzJGQUFaLFlBQVk7a0JBRHhCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb250YXdlc29tZUljb25zQnJhbmRzIH0gZnJvbSAnLi4vbW9kZWxzL2ZvbnRhd2Vzb21lLWljb25zLWJyYW5kcy5tb2RlbCc7XG5pbXBvcnQgeyBGb250YXdlc29tZUljb25zUmVndWxhciB9IGZyb20gJy4uL21vZGVscy9mb250YXdlc29tZS1pY29ucy1yZWd1bGFyLm1vZGVsJztcbmltcG9ydCB7IEZvbnRhd2Vzb21lSWNvbnNTb2xpZCB9IGZyb20gJy4uL21vZGVscy9mb250YXdlc29tZS1pY29ucy1zb2xpZC5tb2RlbCc7XG5pbXBvcnQgeyBQYXJ0aWNsZUljb25zTGlnaHQgfSBmcm9tICcuLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtbGlnaHQubW9kZWwnO1xuaW1wb3J0IHsgUGFydGljbGVJY29uc1JlZ3VsYXIgfSBmcm9tICcuLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtcmVndWxhci5tb2RlbCc7XG5pbXBvcnQgeyBQYXJ0aWNsZUljb25zU29saWQgfSBmcm9tICcuLi9tb2RlbHMvcGFydGljbGUtaWNvbnMtc29saWQubW9kZWwnO1xuXG4vKipcbiAqIFR5cGUgcmVwcmVzZW50aW5nIHRoZSBhdmFpbGFibGUgUGFydGljbGUgaWNvbiBmaWx0ZXIgb3B0aW9uc1xuICovXG5kZWNsYXJlIHR5cGUgUGFydGljbGVJY29uRmlsdGVyT3B0aW9uID0gJ2FsbCcgfCAnc29saWQnIHwgJ3JlZ3VsYXInIHwgJ2xpZ2h0JztcblxuLyoqXG4gKiBUeXBlIHJlcHJlc2VudGluZyB0aGUgYXZhaWxhYmxlIEZvbnRhd2Vzb21lIGljb24gZmlsdGVyIG9wdGlvbnNcbiAqL1xuZGVjbGFyZSB0eXBlIEZvbnRhd2Vzb21lSWNvbkZpbHRlck9wdGlvbiA9ICdhbGwnIHwgJ3NvbGlkJyB8ICdyZWd1bGFyJyB8ICdicmFuZHMnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGZpbHRlcmluZyBQYXJ0aWNsZS9Gb250YXdlc29tZSBpY29uc1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSWNvbnNTZXJ2aWNlIHtcblxuICAvKipcbiAgICogR2V0IEZvbnRhd2Vzb21lIGljb25zIGZpbHRlcmVkIGJ5IGljb24gdHlwZVxuICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBpY29uIHR5cGUgdG8gZmlsdGVyIGJ5XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRGb250YXdlc29tZUljb25zKGZpbHRlcjogRm9udGF3ZXNvbWVJY29uRmlsdGVyT3B0aW9uKTogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBpY29uczogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+ID0gW107XG5cbiAgICBpZiAoZmlsdGVyID09PSAnYWxsJyB8fCBmaWx0ZXIgPT09ICdzb2xpZCcpIHtcbiAgICAgIGljb25zLnB1c2goLi4uRm9udGF3ZXNvbWVJY29uc1NvbGlkLklDT05TLm1hcChpY29uID0+ICh7IHByZWZpeDogRm9udGF3ZXNvbWVJY29uc1NvbGlkLlBSRUZJWCwgbmFtZTogaWNvbiB9KSkpO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgPT09ICdhbGwnIHx8IGZpbHRlciA9PT0gJ3JlZ3VsYXInKSB7XG4gICAgICBpY29ucy5wdXNoKC4uLkZvbnRhd2Vzb21lSWNvbnNSZWd1bGFyLklDT05TLm1hcChpY29uID0+ICh7IHByZWZpeDogRm9udGF3ZXNvbWVJY29uc1JlZ3VsYXIuUFJFRklYLCBuYW1lOiBpY29uIH0pKSk7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlciA9PT0gJ2FsbCcgfHwgZmlsdGVyID09PSAnYnJhbmRzJykge1xuICAgICAgaWNvbnMucHVzaCguLi5Gb250YXdlc29tZUljb25zQnJhbmRzLklDT05TLm1hcChpY29uID0+ICh7IHByZWZpeDogRm9udGF3ZXNvbWVJY29uc0JyYW5kcy5QUkVGSVgsIG5hbWU6IGljb24gfSkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWNvbnM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IFBhcnRpY2xlIGljb25zIGZpbHRlcmVkIGJ5IGljb24gdHlwZVxuICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBpY29uIHR5cGUgdG8gZmlsdGVyIGJ5XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBnZXRQYXJ0aWNsZUljb25zKGZpbHRlcjogUGFydGljbGVJY29uRmlsdGVyT3B0aW9uKTogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBpY29uczogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+ID0gW107XG5cbiAgICBpZiAoZmlsdGVyID09PSAnYWxsJyB8fCBmaWx0ZXIgPT09ICdzb2xpZCcpIHtcbiAgICAgIGljb25zLnB1c2goLi4uUGFydGljbGVJY29uc1NvbGlkLmljb25zLm1hcChpY29uID0+ICh7IHByZWZpeDogaWNvbi5wcmVmaXgsIG5hbWU6IGBmYS0ke2ljb24uaWNvbk5hbWV9YCB9KSkpO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgPT09ICdhbGwnIHx8IGZpbHRlciA9PT0gJ3JlZ3VsYXInKSB7XG4gICAgICBpY29ucy5wdXNoKC4uLlBhcnRpY2xlSWNvbnNSZWd1bGFyLmljb25zLm1hcChpY29uID0+ICh7IHByZWZpeDogaWNvbi5wcmVmaXgsIG5hbWU6IGBmYS0ke2ljb24uaWNvbk5hbWV9YCB9KSkpO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgPT09ICdhbGwnIHx8IGZpbHRlciA9PT0gJ2xpZ2h0Jykge1xuICAgICAgaWNvbnMucHVzaCguLi5QYXJ0aWNsZUljb25zTGlnaHQuaWNvbnMubWFwKGljb24gPT4gKHsgcHJlZml4OiBpY29uLnByZWZpeCwgbmFtZTogYGZhLSR7aWNvbi5pY29uTmFtZX1gIH0pKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGljb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yXG4gICAqL1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGljb25zIChhcyBzdHJpbmdzKSBjb250YWluaW5nIGJvdGggUGFydGljbGUgaWNvbnNcbiAgICogYW5kIEZvbnRhd2Vzb21lIGljb25zIHRoYXQgbWF0Y2ggdGhlaXIgcmVzcGVjdGl2ZSBmaWx0ZXIgY3JpdGVyaWFcbiAgICogQHBhcmFtIGljb25UeXBlIHRoZSB0eXBlIG9mIGljb24sIG9yIGFsbCBpY29uc1xuICAgKiBAcGFyYW0gZmlsdGVyIHRoZSBpY29uIHN0eWxpbmcgdG8gZmlsdGVyIGJ5XG4gICAqIEBwYXJhbSBzZWFyY2hUZXh0IHRoZSBzZWFyY2ggdGV4dCB0byBmaWx0ZXIgaWNvbnMgYnlcbiAgICovXG4gIGdldEljb25zKFxuICAgIGljb25UeXBlOiAnYWxsJyB8ICdwYXJ0aWNsZScgfCAnZm9udGF3ZXNvbWUnLFxuICAgIGZpbHRlcjogUGFydGljbGVJY29uRmlsdGVyT3B0aW9uIHwgRm9udGF3ZXNvbWVJY29uRmlsdGVyT3B0aW9uLFxuICAgIHNlYXJjaFRleHQgPSAnJ1xuICApOiBBcnJheTx7IHByZWZpeDogc3RyaW5nLCBuYW1lOiBzdHJpbmcgfT4ge1xuICAgIGxldCBpY29uczogQXJyYXk8eyBwcmVmaXg6IHN0cmluZywgbmFtZTogc3RyaW5nIH0+ID0gW107XG5cbiAgICBpZiAoaWNvblR5cGUgPT09ICdhbGwnIHx8IGljb25UeXBlID09PSAncGFydGljbGUnKSB7XG4gICAgICBjb25zdCBwYXJ0aWNsZUljb25zID0gSWNvbnNTZXJ2aWNlLmdldFBhcnRpY2xlSWNvbnMoZmlsdGVyIGFzIFBhcnRpY2xlSWNvbkZpbHRlck9wdGlvbik7XG5cbiAgICAgIGlmIChwYXJ0aWNsZUljb25zLmxlbmd0aCkge1xuICAgICAgICBpY29ucy5wdXNoKC4uLnBhcnRpY2xlSWNvbnMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpY29uVHlwZSA9PT0gJ2FsbCcgfHwgaWNvblR5cGUgPT09ICdmb250YXdlc29tZScpIHtcbiAgICAgIGNvbnN0IGZvbnRhd2Vzb21lSWNvbnMgPSBJY29uc1NlcnZpY2UuZ2V0Rm9udGF3ZXNvbWVJY29ucyhmaWx0ZXIgYXMgRm9udGF3ZXNvbWVJY29uRmlsdGVyT3B0aW9uKTtcblxuICAgICAgaWYgKGZvbnRhd2Vzb21lSWNvbnMubGVuZ3RoKSB7XG4gICAgICAgIGljb25zLnB1c2goLi4uZm9udGF3ZXNvbWVJY29ucyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdHJpbW1lZFNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICh0cmltbWVkU2VhcmNoVGV4dCkge1xuICAgICAgaWNvbnMgPSBpY29ucy5maWx0ZXIoaWNvbiA9PiBpY29uLm5hbWUuaW5jbHVkZXModHJpbW1lZFNlYXJjaFRleHQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaWNvbnM7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,85 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { IdleTimer } from './idle-timer';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../dialog/dialog.component";
5
+ export class IdleTimeoutComponent {
6
+ borderRadius = '0px';
7
+ timeoutInSeconds = 600;
8
+ text = {
9
+ sessionExpiring: 'Your Session is Expiring',
10
+ second: 'second',
11
+ seconds: 'seconds',
12
+ stayLoggedIn: 'Click to stay logged in'
13
+ };
14
+ timerEnd = new EventEmitter();
15
+ /**
16
+ * Timeout Dialog - shows when the inactivity timer has 1 minute left, giving the user the ability to confirm they're still active.
17
+ */
18
+ timeoutDialog = null;
19
+ /**
20
+ * Used for the countdown to user auto-logout
21
+ */
22
+ count = 0;
23
+ /**
24
+ * Controls showing the dialog
25
+ */
26
+ showDialog;
27
+ idleTimer = null;
28
+ COUNTDOWN_LENGTH = 60;
29
+ finalCountdown;
30
+ timerReset = false;
31
+ constructor() {
32
+ }
33
+ ngOnInit() {
34
+ this.idleTimer = new IdleTimer(this.timeoutInSeconds - 60, () => { this.openDialog(); });
35
+ }
36
+ openDialog() {
37
+ this.showDialog = {};
38
+ this.timerReset = false;
39
+ this.timeoutDialog.open();
40
+ this.setupFinalCountdown();
41
+ }
42
+ setupFinalCountdown() {
43
+ this.count = this.COUNTDOWN_LENGTH;
44
+ this.finalCountdown = setInterval(() => {
45
+ this.count--;
46
+ if (this.count === 0 || !this.idleTimer.isTimerExpired()) {
47
+ this.handleTimerEnd();
48
+ }
49
+ }, 1000);
50
+ }
51
+ handleTimerEnd() {
52
+ clearInterval(this.finalCountdown);
53
+ this.showDialog = null;
54
+ this.timeoutDialog.close();
55
+ if (this.idleTimer.isTimerExpired()) {
56
+ this.timerEnd.emit();
57
+ }
58
+ }
59
+ resetTimer() {
60
+ if (!this.timerReset) {
61
+ this.timerReset = true;
62
+ clearInterval(this.finalCountdown);
63
+ this.idleTimer.resetTimer();
64
+ this.showDialog = null;
65
+ }
66
+ }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IdleTimeoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.2", type: IdleTimeoutComponent, selector: "particle-idle-timeout", inputs: { borderRadius: "borderRadius", timeoutInSeconds: "timeoutInSeconds", text: "text" }, outputs: { timerEnd: "timerEnd" }, viewQueries: [{ propertyName: "timeoutDialog", first: true, predicate: ["timeoutDialog"], descendants: true }], ngImport: i0, template: "<!-- timeout dialog -->\r\n<particle-dialog [title]=\"text.sessionExpiring\"\r\n [object]=\"showDialog\"\r\n [borderRadius]=\"borderRadius\"\r\n (closed)=\"resetTimer()\"\r\n width=\"350px\" height=\"150px\"\r\n #timeoutDialog>\r\n <div class=\"row column center_center height100\">\r\n <div class=\"header sm bold center mar_bot10\">{{count}} {{count !== 1 ? text.seconds : text.second}}</div>\r\n <button class=\"access btn md bg_overlay brdr ok_button_color\" [attr.aria-label]=\"text.stayLoggedIn\"\r\n (click)=\"resetTimer()\">\r\n <span class=\"text\">{{text.stayLoggedIn}}</span>\r\n </button>\r\n </div>\r\n</particle-dialog>\r\n", dependencies: [{ kind: "component", type: i1.DialogComponent, selector: "particle-dialog", inputs: ["object", "title", "titleClass", "showTitle", "allowClose", "bodyClass", "height", "width", "borderRadius", "text"], outputs: ["closed", "opened"] }] });
69
+ }
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: IdleTimeoutComponent, decorators: [{
71
+ type: Component,
72
+ args: [{ selector: 'particle-idle-timeout', template: "<!-- timeout dialog -->\r\n<particle-dialog [title]=\"text.sessionExpiring\"\r\n [object]=\"showDialog\"\r\n [borderRadius]=\"borderRadius\"\r\n (closed)=\"resetTimer()\"\r\n width=\"350px\" height=\"150px\"\r\n #timeoutDialog>\r\n <div class=\"row column center_center height100\">\r\n <div class=\"header sm bold center mar_bot10\">{{count}} {{count !== 1 ? text.seconds : text.second}}</div>\r\n <button class=\"access btn md bg_overlay brdr ok_button_color\" [attr.aria-label]=\"text.stayLoggedIn\"\r\n (click)=\"resetTimer()\">\r\n <span class=\"text\">{{text.stayLoggedIn}}</span>\r\n </button>\r\n </div>\r\n</particle-dialog>\r\n" }]
73
+ }], ctorParameters: () => [], propDecorators: { borderRadius: [{
74
+ type: Input
75
+ }], timeoutInSeconds: [{
76
+ type: Input
77
+ }], text: [{
78
+ type: Input
79
+ }], timerEnd: [{
80
+ type: Output
81
+ }], timeoutDialog: [{
82
+ type: ViewChild,
83
+ args: ['timeoutDialog']
84
+ }] } });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS10aW1lb3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvaWRsZS10aW1lb3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvaWRsZS10aW1lb3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXhGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxjQUFjLENBQUM7OztBQU92QyxNQUFNLE9BQU8sb0JBQW9CO0lBRy9CLFlBQVksR0FBVyxLQUFLLENBQUM7SUFHN0IsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0lBR3ZCLElBQUksR0FBb0I7UUFDdEIsZUFBZSxFQUFFLDBCQUEwQjtRQUMzQyxNQUFNLEVBQUUsUUFBUTtRQUNoQixPQUFPLEVBQUUsU0FBUztRQUNsQixZQUFZLEVBQUUseUJBQXlCO0tBQ3JCLENBQUM7SUFHckIsUUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRXREOztPQUVHO0lBRUgsYUFBYSxHQUFvQixJQUFXLENBQUM7SUFFN0M7O09BRUc7SUFDSCxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBRVY7O09BRUc7SUFDSCxVQUFVLENBQU07SUFFaEIsU0FBUyxHQUFjLElBQVcsQ0FBQztJQUVsQixnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFFL0IsY0FBYyxDQUFNO0lBRXBCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFM0I7SUFDQSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUEsQ0FBQSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDckMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLENBQUM7UUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU8sY0FBYztRQUNwQixhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLGFBQWEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQzt1R0FwRlUsb0JBQW9COzJGQUFwQixvQkFBb0IsOFNDVGpDLDB1QkFlQTs7MkZETmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLHVCQUF1Qjt3REFNakMsWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFTTixRQUFRO3NCQURQLE1BQU07Z0JBT1AsYUFBYTtzQkFEWixTQUFTO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGlhbG9nQ29tcG9uZW50fSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SWRsZVRpbWVyfSBmcm9tICcuL2lkbGUtdGltZXInO1xyXG5pbXBvcnQge0lkbGVUaW1lb3V0VGV4dH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVscy9wYXJ0aWNsZS1jb21wb25lbnQtdGV4dC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3BhcnRpY2xlLWlkbGUtdGltZW91dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lkbGUtdGltZW91dC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIElkbGVUaW1lb3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KClcclxuICBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICcwcHgnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRpbWVvdXRJblNlY29uZHMgPSA2MDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dDogSWRsZVRpbWVvdXRUZXh0ID0ge1xyXG4gICAgc2Vzc2lvbkV4cGlyaW5nOiAnWW91ciBTZXNzaW9uIGlzIEV4cGlyaW5nJyxcclxuICAgIHNlY29uZDogJ3NlY29uZCcsXHJcbiAgICBzZWNvbmRzOiAnc2Vjb25kcycsXHJcbiAgICBzdGF5TG9nZ2VkSW46ICdDbGljayB0byBzdGF5IGxvZ2dlZCBpbidcclxuICB9IGFzIElkbGVUaW1lb3V0VGV4dDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdGltZXJFbmQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRpbWVvdXQgRGlhbG9nIC0gc2hvd3Mgd2hlbiB0aGUgaW5hY3Rpdml0eSB0aW1lciBoYXMgMSBtaW51dGUgbGVmdCwgZ2l2aW5nIHRoZSB1c2VyIHRoZSBhYmlsaXR5IHRvIGNvbmZpcm0gdGhleSdyZSBzdGlsbCBhY3RpdmUuXHJcbiAgICovXHJcbiAgQFZpZXdDaGlsZCgndGltZW91dERpYWxvZycpXHJcbiAgdGltZW91dERpYWxvZzogRGlhbG9nQ29tcG9uZW50ID0gbnVsbCBhcyBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVzZWQgZm9yIHRoZSBjb3VudGRvd24gdG8gdXNlciBhdXRvLWxvZ291dFxyXG4gICAqL1xyXG4gIGNvdW50ID0gMDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29udHJvbHMgc2hvd2luZyB0aGUgZGlhbG9nXHJcbiAgICovXHJcbiAgc2hvd0RpYWxvZzogYW55O1xyXG5cclxuICBpZGxlVGltZXI6IElkbGVUaW1lciA9IG51bGwgYXMgYW55O1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IENPVU5URE9XTl9MRU5HVEggPSA2MDtcclxuXHJcbiAgcHJpdmF0ZSBmaW5hbENvdW50ZG93bjogYW55O1xyXG5cclxuICBwcml2YXRlIHRpbWVyUmVzZXQgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaWRsZVRpbWVyID0gbmV3IElkbGVUaW1lcih0aGlzLnRpbWVvdXRJblNlY29uZHMgLSA2MCwgKCkgPT4ge3RoaXMub3BlbkRpYWxvZygpfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93RGlhbG9nID0ge307XHJcbiAgICB0aGlzLnRpbWVyUmVzZXQgPSBmYWxzZTtcclxuICAgIHRoaXMudGltZW91dERpYWxvZy5vcGVuKCk7XHJcbiAgICB0aGlzLnNldHVwRmluYWxDb3VudGRvd24oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBGaW5hbENvdW50ZG93bigpOiB2b2lkIHtcclxuICAgIHRoaXMuY291bnQgPSB0aGlzLkNPVU5URE9XTl9MRU5HVEg7XHJcbiAgICB0aGlzLmZpbmFsQ291bnRkb3duID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvdW50LS07XHJcbiAgICAgIGlmICh0aGlzLmNvdW50ID09PSAwIHx8ICF0aGlzLmlkbGVUaW1lci5pc1RpbWVyRXhwaXJlZCgpKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVUaW1lckVuZCgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlVGltZXJFbmQoKTogdm9pZCB7XHJcbiAgICBjbGVhckludGVydmFsKHRoaXMuZmluYWxDb3VudGRvd24pO1xyXG4gICAgdGhpcy5zaG93RGlhbG9nID0gbnVsbDtcclxuICAgIHRoaXMudGltZW91dERpYWxvZy5jbG9zZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmlkbGVUaW1lci5pc1RpbWVyRXhwaXJlZCgpKSB7XHJcbiAgICAgIHRoaXMudGltZXJFbmQuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRUaW1lcigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50aW1lclJlc2V0KSB7XHJcbiAgICAgIHRoaXMudGltZXJSZXNldCA9IHRydWU7XHJcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5maW5hbENvdW50ZG93bik7XHJcbiAgICAgIHRoaXMuaWRsZVRpbWVyLnJlc2V0VGltZXIoKTtcclxuICAgICAgdGhpcy5zaG93RGlhbG9nID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gdGltZW91dCBkaWFsb2cgLS0+XHJcbjxwYXJ0aWNsZS1kaWFsb2cgW3RpdGxlXT1cInRleHQuc2Vzc2lvbkV4cGlyaW5nXCJcclxuICAgICAgICAgICAgICAgICBbb2JqZWN0XT1cInNob3dEaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgIFtib3JkZXJSYWRpdXNdPVwiYm9yZGVyUmFkaXVzXCJcclxuICAgICAgICAgICAgICAgICAoY2xvc2VkKT1cInJlc2V0VGltZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgd2lkdGg9XCIzNTBweFwiIGhlaWdodD1cIjE1MHB4XCJcclxuICAgICAgICAgICAgICAgICAjdGltZW91dERpYWxvZz5cclxuICA8ZGl2IGNsYXNzPVwicm93IGNvbHVtbiBjZW50ZXJfY2VudGVyIGhlaWdodDEwMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlciBzbSBib2xkIGNlbnRlciBtYXJfYm90MTBcIj57e2NvdW50fX0ge3tjb3VudCAhPT0gMSA/IHRleHQuc2Vjb25kcyA6IHRleHQuc2Vjb25kfX08L2Rpdj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJhY2Nlc3MgYnRuIG1kIGJnX292ZXJsYXkgYnJkciBva19idXR0b25fY29sb3JcIiBbYXR0ci5hcmlhLWxhYmVsXT1cInRleHQuc3RheUxvZ2dlZEluXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInJlc2V0VGltZXIoKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj57e3RleHQuc3RheUxvZ2dlZElufX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9wYXJ0aWNsZS1kaWFsb2c+XHJcbiJdfQ==
@@ -0,0 +1,66 @@
1
+ export class IdleTimer {
2
+ interval;
3
+ timeoutTracker;
4
+ eventHandler;
5
+ timeout;
6
+ onTimeout;
7
+ constructor(timeout, onTimeout) {
8
+ this.timeout = timeout;
9
+ this.onTimeout = onTimeout;
10
+ this.eventHandler = this.updateExpiredTime.bind(this);
11
+ this.tracker();
12
+ this.startInterval();
13
+ }
14
+ startInterval() {
15
+ this.updateExpiredTime();
16
+ this.interval = setInterval(() => {
17
+ if (this.isTimerExpired() && this.onTimeout) {
18
+ this.onTimeout();
19
+ this.cleanUp();
20
+ }
21
+ }, 1000);
22
+ }
23
+ updateExpiredTime() {
24
+ if (this.timeoutTracker) {
25
+ clearTimeout(this.timeoutTracker);
26
+ }
27
+ this.timeoutTracker = setTimeout(() => {
28
+ localStorage.setItem('_expiredTime', (Date.now() + this.timeout * 1000) + '');
29
+ }, 300);
30
+ }
31
+ tracker() {
32
+ localStorage.removeItem('_expiredTime');
33
+ window.addEventListener('mousemove', this.eventHandler);
34
+ window.addEventListener('scroll', this.eventHandler);
35
+ window.addEventListener('keydown', this.eventHandler);
36
+ window.addEventListener('resize', this.eventHandler);
37
+ document.addEventListener('click', this.eventHandler);
38
+ document.addEventListener('mousedown', this.eventHandler);
39
+ document.addEventListener('DOMMouseScroll', this.eventHandler);
40
+ document.addEventListener('mousewheel', this.eventHandler);
41
+ document.addEventListener('touchmove', this.eventHandler);
42
+ document.addEventListener('MSPointerMove', this.eventHandler);
43
+ }
44
+ cleanUp() {
45
+ clearInterval(this.interval);
46
+ window.removeEventListener('mousemove', this.eventHandler);
47
+ window.removeEventListener('scroll', this.eventHandler);
48
+ window.removeEventListener('keydown', this.eventHandler);
49
+ window.removeEventListener('resize', this.eventHandler);
50
+ document.removeEventListener('click', this.eventHandler);
51
+ document.removeEventListener('mousedown', this.eventHandler);
52
+ document.removeEventListener('DOMMouseScroll', this.eventHandler);
53
+ document.removeEventListener('mousewheel', this.eventHandler);
54
+ document.removeEventListener('touchmove', this.eventHandler);
55
+ document.removeEventListener('MSPointerMove', this.eventHandler);
56
+ }
57
+ resetTimer() {
58
+ this.tracker();
59
+ this.startInterval();
60
+ }
61
+ isTimerExpired() {
62
+ const expiredTime = parseInt(localStorage.getItem('_expiredTime'), 10);
63
+ return expiredTime < Date.now();
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRsZS10aW1lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvaWRsZS10aW1lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sU0FBUztJQUNaLFFBQVEsQ0FBTTtJQUNkLGNBQWMsQ0FBTTtJQUNYLFlBQVksQ0FBTTtJQUNsQixPQUFPLENBQVM7SUFDaEIsU0FBUyxDQUFNO0lBRWhDLFlBQVksT0FBZSxFQUFFLFNBQWM7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sYUFBYTtRQUNuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM1QyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU8sT0FBTztRQUNiLFlBQVksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDckQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxRQUFRLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsT0FBTztRQUNMLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDekQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDN0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsY0FBYztRQUNaLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSWRsZVRpbWVyIHtcclxuICBwcml2YXRlIGludGVydmFsOiBhbnk7XHJcbiAgcHJpdmF0ZSB0aW1lb3V0VHJhY2tlcjogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZXZlbnRIYW5kbGVyOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1lb3V0OiBudW1iZXI7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBvblRpbWVvdXQ6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IodGltZW91dDogbnVtYmVyLCBvblRpbWVvdXQ6IGFueSkge1xyXG4gICAgdGhpcy50aW1lb3V0ID0gdGltZW91dDtcclxuICAgIHRoaXMub25UaW1lb3V0ID0gb25UaW1lb3V0O1xyXG4gICAgdGhpcy5ldmVudEhhbmRsZXIgPSB0aGlzLnVwZGF0ZUV4cGlyZWRUaW1lLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLnRyYWNrZXIoKTtcclxuICAgIHRoaXMuc3RhcnRJbnRlcnZhbCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFydEludGVydmFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy51cGRhdGVFeHBpcmVkVGltZSgpO1xyXG5cclxuICAgIHRoaXMuaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmlzVGltZXJFeHBpcmVkKCkgJiYgdGhpcy5vblRpbWVvdXQpIHtcclxuICAgICAgICB0aGlzLm9uVGltZW91dCgpO1xyXG4gICAgICAgIHRoaXMuY2xlYW5VcCgpO1xyXG4gICAgICB9XHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRXhwaXJlZFRpbWUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50aW1lb3V0VHJhY2tlcikge1xyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0VHJhY2tlcik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRpbWVvdXRUcmFja2VyID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdfZXhwaXJlZFRpbWUnLCAoRGF0ZS5ub3coKSArIHRoaXMudGltZW91dCAqIDEwMDApICsgJycpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhY2tlcigpOiB2b2lkIHtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdfZXhwaXJlZFRpbWUnKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Nb3VzZVNjcm9sbCcsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNld2hlZWwnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdNU1BvaW50ZXJNb3ZlJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gIH1cclxuXHJcbiAgY2xlYW5VcCgpOiB2b2lkIHtcclxuICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignRE9NTW91c2VTY3JvbGwnLCB0aGlzLmV2ZW50SGFuZGxlcik7XHJcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5ldmVudEhhbmRsZXIpO1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignTVNQb2ludGVyTW92ZScsIHRoaXMuZXZlbnRIYW5kbGVyKTtcclxuICB9XHJcblxyXG4gIHJlc2V0VGltZXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYWNrZXIoKTtcclxuICAgIHRoaXMuc3RhcnRJbnRlcnZhbCgpO1xyXG4gIH1cclxuXHJcbiAgaXNUaW1lckV4cGlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBleHBpcmVkVGltZSA9IHBhcnNlSW50KGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdfZXhwaXJlZFRpbWUnKSBhcyBzdHJpbmcsIDEwKTtcclxuICAgIHJldHVybiBleHBpcmVkVGltZSA8IERhdGUubm93KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { IdleTimeoutComponent } from './idle-timeout.component';
4
+ import { ParticleDialogModule } from '../dialog/dialog.module';
5
+ import * as i0 from "@angular/core";
6
+ export class ParticleIdleTimeoutModule {
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, declarations: [IdleTimeoutComponent], imports: [CommonModule,
9
+ ParticleDialogModule], exports: [IdleTimeoutComponent] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, imports: [CommonModule,
11
+ ParticleDialogModule] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ParticleIdleTimeoutModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [
17
+ IdleTimeoutComponent
18
+ ],
19
+ exports: [
20
+ IdleTimeoutComponent
21
+ ],
22
+ imports: [
23
+ CommonModule,
24
+ ParticleDialogModule
25
+ ]
26
+ }]
27
+ }] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGljbGUtaWRsZS10aW1lb3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9pZGxlLXRpbWVvdXQvcGFydGljbGUtaWRsZS10aW1lb3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFjN0QsTUFBTSxPQUFPLHlCQUF5Qjt1R0FBekIseUJBQXlCO3dHQUF6Qix5QkFBeUIsaUJBVmxDLG9CQUFvQixhQU1wQixZQUFZO1lBQ1osb0JBQW9CLGFBSnBCLG9CQUFvQjt3R0FPWCx5QkFBeUIsWUFKbEMsWUFBWTtZQUNaLG9CQUFvQjs7MkZBR1gseUJBQXlCO2tCQVpyQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJZGxlVGltZW91dENvbXBvbmVudCB9IGZyb20gJy4vaWRsZS10aW1lb3V0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7UGFydGljbGVEaWFsb2dNb2R1bGV9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBJZGxlVGltZW91dENvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgSWRsZVRpbWVvdXRDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFBhcnRpY2xlRGlhbG9nTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFydGljbGVJZGxlVGltZW91dE1vZHVsZSB7IH1cclxuIl19