@indice/ng-components 0.2.175 → 0.3.1

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 (243) hide show
  1. package/README.md +4 -4
  2. package/_styles.scss +4323 -4275
  3. package/{esm2020 → esm2022}/indice-ng-components.mjs +4 -4
  4. package/esm2022/lib/controls/advanced-search/advanced-search.component.mjs +156 -0
  5. package/esm2022/lib/controls/advanced-search/models.mjs +109 -0
  6. package/esm2022/lib/controls/avatar-initials/avatar-initials.component.mjs +48 -0
  7. package/{esm2020 → esm2022}/lib/controls/breadcrumb/breadcrumb-item.mjs +14 -14
  8. package/esm2022/lib/controls/breadcrumb/breadcrumb.component.mjs +26 -0
  9. package/esm2022/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
  10. package/esm2022/lib/controls/combobox/combobox.component.mjs +121 -0
  11. package/esm2022/lib/controls/content-tile/content-tile-header/content-tile-header.component.mjs +17 -0
  12. package/esm2022/lib/controls/content-tile/content-tile-item/content-tile-item.component.mjs +19 -0
  13. package/esm2022/lib/controls/content-tile/content-tile.component.mjs +63 -0
  14. package/esm2022/lib/controls/date-picker/date-picker.component.mjs +300 -0
  15. package/esm2022/lib/controls/drop-down-menu/drop-down-menu.component.mjs +72 -0
  16. package/esm2022/lib/controls/kpi-tile/kpi-tile.component.mjs +43 -0
  17. package/esm2022/lib/controls/language-selection/language-selection.component.mjs +31 -0
  18. package/{esm2020 → esm2022}/lib/controls/list-view/list-column.component.mjs +25 -25
  19. package/esm2022/lib/controls/list-view/list-details-section.component.mjs +17 -0
  20. package/{esm2020 → esm2022}/lib/controls/list-view/list-tile.component.mjs +17 -17
  21. package/esm2022/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
  22. package/esm2022/lib/controls/list-view/list-view.component.mjs +210 -0
  23. package/esm2022/lib/controls/nav-links-list/nav-links-list.component.mjs +54 -0
  24. package/esm2022/lib/controls/notifications-indicator/notifications-indicator.component.mjs +79 -0
  25. package/esm2022/lib/controls/pager/pager.component.mjs +130 -0
  26. package/esm2022/lib/controls/progress-bar/progress-bar.component.mjs +46 -0
  27. package/esm2022/lib/controls/side-pane/side-pane.component.mjs +87 -0
  28. package/esm2022/lib/controls/skeleton-loader/skeleton-loader.component.mjs +29 -0
  29. package/esm2022/lib/controls/stats-grid/stats-grid.component.mjs +49 -0
  30. package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-info.directive.mjs +16 -16
  31. package/{esm2020 → esm2022}/lib/controls/stepper/lib-step-label.directive.mjs +16 -16
  32. package/esm2022/lib/controls/stepper/lib-step.component.mjs +81 -0
  33. package/esm2022/lib/controls/stepper/lib-stepper.component.mjs +108 -0
  34. package/esm2022/lib/controls/stepper/types/step-selected-event.mjs +4 -0
  35. package/{esm2020 → esm2022}/lib/controls/stepper/types/stepper-type.mjs +12 -12
  36. package/esm2022/lib/controls/tabs/lib-tab-group.component.mjs +66 -0
  37. package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab-label.directive.mjs +16 -16
  38. package/{esm2020 → esm2022}/lib/controls/tabs/lib-tab.component.mjs +64 -64
  39. package/esm2022/lib/controls/toaster/toaster-container.component.mjs +28 -0
  40. package/esm2022/lib/controls/toaster/toaster.component.mjs +31 -0
  41. package/esm2022/lib/controls/toggle/toggle.component.mjs +64 -0
  42. package/esm2022/lib/controls/toggle-button/toggle-button.component.mjs +87 -0
  43. package/esm2022/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +34 -0
  44. package/esm2022/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
  45. package/esm2022/lib/directives/click-outside.directive.mjs +189 -0
  46. package/esm2022/lib/directives/dynamic-component-host.directive.mjs +17 -0
  47. package/esm2022/lib/helpers/base-list.component.mjs +230 -0
  48. package/esm2022/lib/icons.mjs +36 -0
  49. package/esm2022/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
  50. package/esm2022/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
  51. package/esm2022/lib/layouts/shell/shell-layout/shell-layout.component.mjs +90 -0
  52. package/esm2022/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +54 -0
  53. package/esm2022/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -0
  54. package/esm2022/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +30 -0
  55. package/esm2022/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +20 -0
  56. package/esm2022/lib/layouts/views/form-layout/form-layout.component.mjs +86 -0
  57. package/esm2022/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +101 -0
  58. package/esm2022/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +106 -0
  59. package/esm2022/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
  60. package/esm2022/lib/ng-components.module.mjs +320 -0
  61. package/esm2022/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
  62. package/esm2022/lib/pages/auth/auth-renew/auth-renew.component.mjs +31 -0
  63. package/esm2022/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
  64. package/esm2022/lib/pages/http-status/error/error.component.mjs +17 -0
  65. package/esm2022/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
  66. package/esm2022/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
  67. package/esm2022/lib/pipes/address.pipe.mjs +21 -0
  68. package/esm2022/lib/pipes/duration-format.pipe.mjs +64 -0
  69. package/esm2022/lib/pipes/short-number.pipe.mjs +43 -0
  70. package/esm2022/lib/services/breadcrumb.service.mjs +174 -0
  71. package/esm2022/lib/services/component-loader/component-loader-options.class.mjs +8 -0
  72. package/esm2022/lib/services/component-loader/component-loader.class.mjs +188 -0
  73. package/esm2022/lib/services/component-loader/component-loader.factory.mjs +32 -0
  74. package/{esm2020 → esm2022}/lib/services/component-loader/content-ref.class.mjs +13 -13
  75. package/esm2022/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
  76. package/esm2022/lib/services/modal-service/modal-container-component.mjs +126 -0
  77. package/esm2022/lib/services/modal-service/modal-options.class.mjs +35 -0
  78. package/esm2022/lib/services/modal-service/modal-service.mjs +220 -0
  79. package/{esm2020 → esm2022}/lib/services/modal-service/modal-styles.class.mjs +11 -11
  80. package/esm2022/lib/services/modal-service/modal.class.mjs +27 -0
  81. package/{esm2020 → esm2022}/lib/services/toaster.service.mjs +26 -26
  82. package/esm2022/lib/services/user-settings.service.mjs +35 -0
  83. package/esm2022/lib/services/utilities.service.mjs +47 -0
  84. package/{esm2020 → esm2022}/lib/tokens.mjs +8 -8
  85. package/esm2022/lib/types.mjs +133 -0
  86. package/esm2022/public-api.mjs +78 -0
  87. package/fesm2022/indice-ng-components.mjs +5069 -0
  88. package/fesm2022/indice-ng-components.mjs.map +1 -0
  89. package/index.d.ts +5 -5
  90. package/lib/controls/advanced-search/advanced-search.component.d.ts +40 -40
  91. package/lib/controls/advanced-search/models.d.ts +91 -91
  92. package/lib/controls/avatar-initials/avatar-initials.component.d.ts +14 -14
  93. package/lib/controls/breadcrumb/breadcrumb-item.d.ts +7 -7
  94. package/lib/controls/breadcrumb/breadcrumb.component.d.ts +12 -12
  95. package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +10 -10
  96. package/lib/controls/combobox/combobox.component.d.ts +35 -34
  97. package/lib/controls/content-tile/content-tile-header/content-tile-header.component.d.ts +7 -0
  98. package/lib/controls/content-tile/content-tile-item/content-tile-item.component.d.ts +8 -0
  99. package/lib/controls/content-tile/content-tile.component.d.ts +23 -0
  100. package/lib/controls/date-picker/date-picker.component.d.ts +53 -53
  101. package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +26 -26
  102. package/lib/controls/kpi-tile/kpi-tile.component.d.ts +15 -15
  103. package/lib/controls/language-selection/language-selection.component.d.ts +14 -14
  104. package/lib/controls/list-view/list-column.component.d.ts +9 -9
  105. package/lib/controls/list-view/list-details-section.component.d.ts +7 -7
  106. package/lib/controls/list-view/list-tile.component.d.ts +7 -7
  107. package/lib/controls/list-view/list-view-empty-state.component.d.ts +11 -11
  108. package/lib/controls/list-view/list-view.component.d.ts +62 -61
  109. package/lib/controls/nav-links-list/nav-links-list.component.d.ts +21 -21
  110. package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +22 -22
  111. package/lib/controls/pager/pager.component.d.ts +36 -36
  112. package/lib/controls/progress-bar/progress-bar.component.d.ts +16 -0
  113. package/lib/controls/side-pane/side-pane.component.d.ts +22 -18
  114. package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +12 -11
  115. package/lib/controls/stats-grid/stats-grid.component.d.ts +16 -0
  116. package/lib/controls/stepper/lib-step-info.directive.d.ts +8 -8
  117. package/lib/controls/stepper/lib-step-label.directive.d.ts +8 -8
  118. package/lib/controls/stepper/lib-step.component.d.ts +34 -34
  119. package/lib/controls/stepper/lib-stepper.component.d.ts +43 -43
  120. package/lib/controls/stepper/types/step-selected-event.d.ts +12 -12
  121. package/lib/controls/stepper/types/stepper-type.d.ts +10 -10
  122. package/lib/controls/tabs/lib-tab-group.component.d.ts +21 -21
  123. package/lib/controls/tabs/lib-tab-label.directive.d.ts +8 -8
  124. package/lib/controls/tabs/lib-tab.component.d.ts +24 -24
  125. package/lib/controls/toaster/toaster-container.component.d.ts +13 -13
  126. package/lib/controls/toaster/toaster.component.d.ts +15 -15
  127. package/lib/controls/toggle/toggle.component.d.ts +19 -19
  128. package/lib/controls/toggle-button/toggle-button.component.d.ts +25 -25
  129. package/lib/controls/toggle-buttons-list/toggle-buttons-list.component.d.ts +15 -14
  130. package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +24 -24
  131. package/lib/directives/click-outside.directive.d.ts +40 -40
  132. package/lib/directives/dynamic-component-host.directive.d.ts +9 -9
  133. package/lib/helpers/base-list.component.d.ts +54 -53
  134. package/lib/icons.d.ts +34 -34
  135. package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +8 -8
  136. package/lib/layouts/shell/shell-header/shell-header.component.d.ts +39 -39
  137. package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +26 -26
  138. package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +20 -20
  139. package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +14 -14
  140. package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +15 -15
  141. package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +10 -10
  142. package/lib/layouts/views/form-layout/form-layout.component.d.ts +26 -24
  143. package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +42 -42
  144. package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +29 -28
  145. package/lib/layouts/views/view-layout/view-layout.component.d.ts +31 -31
  146. package/lib/ng-components.module.d.ts +71 -65
  147. package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +13 -13
  148. package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +12 -12
  149. package/lib/pages/auth/logged-out/logged-out.component.d.ts +12 -12
  150. package/lib/pages/http-status/error/error.component.d.ts +8 -8
  151. package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +8 -8
  152. package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +8 -8
  153. package/lib/pipes/address.pipe.d.ts +8 -8
  154. package/lib/pipes/duration-format.pipe.d.ts +8 -8
  155. package/lib/pipes/short-number.pipe.d.ts +7 -0
  156. package/lib/services/breadcrumb.service.d.ts +29 -29
  157. package/lib/services/component-loader/component-loader-options.class.d.ts +30 -30
  158. package/lib/services/component-loader/component-loader.class.d.ts +92 -92
  159. package/lib/services/component-loader/component-loader.factory.d.ts +24 -24
  160. package/lib/services/component-loader/content-ref.class.d.ts +12 -12
  161. package/lib/services/modal-service/modal-backdrop-component.d.ts +20 -20
  162. package/lib/services/modal-service/modal-container-component.d.ts +33 -33
  163. package/lib/services/modal-service/modal-options.class.d.ts +81 -81
  164. package/lib/services/modal-service/modal-service.d.ts +58 -58
  165. package/lib/services/modal-service/modal-styles.class.d.ts +10 -10
  166. package/lib/services/modal-service/modal.class.d.ts +43 -43
  167. package/lib/services/toaster.service.d.ts +11 -11
  168. package/lib/services/user-settings.service.d.ts +13 -13
  169. package/lib/services/utilities.service.d.ts +11 -11
  170. package/lib/tokens.d.ts +10 -10
  171. package/lib/types.d.ts +179 -177
  172. package/modal.css +157 -157
  173. package/package.json +13 -19
  174. package/public-api.d.ts +68 -60
  175. package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +0 -156
  176. package/esm2020/lib/controls/advanced-search/models.mjs +0 -109
  177. package/esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs +0 -48
  178. package/esm2020/lib/controls/breadcrumb/breadcrumb.component.mjs +0 -26
  179. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
  180. package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -117
  181. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -292
  182. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -72
  183. package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +0 -43
  184. package/esm2020/lib/controls/language-selection/language-selection.component.mjs +0 -31
  185. package/esm2020/lib/controls/list-view/list-details-section.component.mjs +0 -17
  186. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  187. package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -206
  188. package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +0 -54
  189. package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +0 -79
  190. package/esm2020/lib/controls/pager/pager.component.mjs +0 -130
  191. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
  192. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
  193. package/esm2020/lib/controls/stepper/lib-step.component.mjs +0 -81
  194. package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +0 -108
  195. package/esm2020/lib/controls/stepper/types/step-selected-event.mjs +0 -4
  196. package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +0 -66
  197. package/esm2020/lib/controls/toaster/toaster-container.component.mjs +0 -28
  198. package/esm2020/lib/controls/toaster/toaster.component.mjs +0 -31
  199. package/esm2020/lib/controls/toggle/toggle.component.mjs +0 -64
  200. package/esm2020/lib/controls/toggle-button/toggle-button.component.mjs +0 -87
  201. package/esm2020/lib/controls/toggle-buttons-list/toggle-buttons-list.component.mjs +0 -31
  202. package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +0 -71
  203. package/esm2020/lib/directives/click-outside.directive.mjs +0 -189
  204. package/esm2020/lib/directives/dynamic-component-host.directive.mjs +0 -17
  205. package/esm2020/lib/helpers/base-list.component.mjs +0 -226
  206. package/esm2020/lib/icons.mjs +0 -36
  207. package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +0 -19
  208. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -130
  209. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -90
  210. package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +0 -54
  211. package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +0 -45
  212. package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +0 -30
  213. package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +0 -20
  214. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
  215. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -101
  216. package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +0 -98
  217. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  218. package/esm2020/lib/ng-components.module.mjs +0 -288
  219. package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +0 -30
  220. package/esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs +0 -31
  221. package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +0 -28
  222. package/esm2020/lib/pages/http-status/error/error.component.mjs +0 -17
  223. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
  224. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
  225. package/esm2020/lib/pipes/address.pipe.mjs +0 -21
  226. package/esm2020/lib/pipes/duration-format.pipe.mjs +0 -64
  227. package/esm2020/lib/services/breadcrumb.service.mjs +0 -174
  228. package/esm2020/lib/services/component-loader/component-loader-options.class.mjs +0 -8
  229. package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
  230. package/esm2020/lib/services/component-loader/component-loader.factory.mjs +0 -32
  231. package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +0 -44
  232. package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
  233. package/esm2020/lib/services/modal-service/modal-options.class.mjs +0 -35
  234. package/esm2020/lib/services/modal-service/modal-service.mjs +0 -220
  235. package/esm2020/lib/services/modal-service/modal.class.mjs +0 -27
  236. package/esm2020/lib/services/user-settings.service.mjs +0 -35
  237. package/esm2020/lib/services/utilities.service.mjs +0 -47
  238. package/esm2020/lib/types.mjs +0 -132
  239. package/esm2020/public-api.mjs +0 -70
  240. package/fesm2015/indice-ng-components.mjs +0 -4852
  241. package/fesm2015/indice-ng-components.mjs.map +0 -1
  242. package/fesm2020/indice-ng-components.mjs +0 -4763
  243. package/fesm2020/indice-ng-components.mjs.map +0 -1
@@ -0,0 +1,79 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { APP_LINKS, APP_NOTIFICATIONS } from '../../tokens';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/router";
6
+ import * as i3 from "../../directives/click-outside.directive";
7
+ export class NotificationsIndicatorComponent {
8
+ constructor(notifications, links) {
9
+ this.notifications = notifications;
10
+ this.links = links;
11
+ this.menuExpanded = false;
12
+ this.unreadCount = 0;
13
+ this.items = [];
14
+ this.inboxAction = undefined;
15
+ this.newArrival = false;
16
+ }
17
+ ngOnDestroy() {
18
+ if (this.notificationsSub$) {
19
+ this.notificationsSub$.unsubscribe();
20
+ }
21
+ }
22
+ ngOnInit() {
23
+ if (this.links && this.links['notifications']) {
24
+ this.links['notifications'].subscribe(notificationsLink => {
25
+ this.allNotificationsLink = notificationsLink;
26
+ });
27
+ }
28
+ if (this.notifications) {
29
+ this.notificationsSub$ = this.notifications?.messages.subscribe(result => {
30
+ if (result.items) {
31
+ this.newArrival = true;
32
+ this.unreadCount = result.count;
33
+ this.items = result.items;
34
+ setTimeout(() => { this.newArrival = false; }, 1000);
35
+ }
36
+ });
37
+ }
38
+ }
39
+ doInboxAction() {
40
+ if (this.notifications?.inboxAction) {
41
+ this.notifications.inboxAction();
42
+ }
43
+ else {
44
+ this.menuExpanded = !this.menuExpanded;
45
+ this.ngOnDestroy();
46
+ this.ngOnInit();
47
+ }
48
+ this.unreadCount = 0;
49
+ }
50
+ removeItem(index) {
51
+ this.items.splice(index, 1);
52
+ }
53
+ // this.notificationsSub$ = this.links.notifications?.pipe(map(result => {
54
+ // this.allItemsLink = result.allNotifications;
55
+ // this.items = result.items;
56
+ // this.unreadCount = result.count;
57
+ // }));
58
+ // [this.notificationsLinksPath] as Observable<NotificationNavLink[]>;
59
+ // this.allNotificationsLink = this.links[this.allNotificationsLinkPath] as Observable<NavLink>;
60
+ // this.unreadNotificationsCountObs = this.links[this.notificationsCounterLinksPath] as Observable<number>;
61
+ // this.getUnreadNotificationsCount();
62
+ // tslint:disable-next-line:typedef
63
+ onClickOutside($event) {
64
+ this.menuExpanded = false;
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: NotificationsIndicatorComponent, deps: [{ token: APP_NOTIFICATIONS }, { token: APP_LINKS }], target: i0.ɵɵFactoryTarget.Component }); }
67
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: NotificationsIndicatorComponent, selector: "lib-notifications-indicator", ngImport: i0, template: "<div class=\"relative\"\n(clickOutside)=\"onClickOutside($event)\">\n <!-- Notifications Button -->\n <button type=\"button\"\n (click)=\"doInboxAction()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">View notifications</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\">\n <i class=\"ms-Icon hover:text-blue-400\"\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\n [class.text-sky-400]=\"unreadCount > 0\"\n [class.animate-notification]=\"newArrival\"\n [class.ms-Icon--Message]=\"unreadCount === 0\">\n </i>\n </span>\n <span\n *ngIf=\"unreadCount > 0\"\n [class.animate-pulse]=\"newArrival\"\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\n {{ unreadCount }}\n </span>\n </span>\n </button>\n\n <!-- Notifications dropdown -->\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\n </ng-container>\n <ng-template #messagesDropDown>\n <ul class=\"pr-1.5\">\n <ng-container *ngIf=\"items; else loading\">\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\n </ng-container>\n <ng-container *ngFor=\"let message of items; let i = index\">\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\n <div class=\"flex justify-between\">\n <div class=\"flex-grow\">\n <a\n [routerLink]=\"message.path\"\n (click)=\"removeItem(i)\"\n class=\"notifications-nav-link grid\"\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\n >\n <div class=\"flex flex-col\">\n <div class=\"font-thin tracking-tighter\">\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\n </div>\n <div class=\"font-bold\">\n {{ message.data.text }}\n </div>\n </div>\n </a>\n </div>\n </div>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-template #loading>\n <div class=\"h-32 flex items-center justify-center\">\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\n </div>\n </ng-template>\n </ul>\n </ng-template>\n </div>\n <div class=\"p-1 rounded-sm\">\n <a [routerLink]=\"allNotificationsLink!.path\" (click)=\"onClickOutside($event)\">\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\n </a>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: NotificationsIndicatorComponent, decorators: [{
70
+ type: Component,
71
+ args: [{ selector: 'lib-notifications-indicator', template: "<div class=\"relative\"\n(clickOutside)=\"onClickOutside($event)\">\n <!-- Notifications Button -->\n <button type=\"button\"\n (click)=\"doInboxAction()\"\n aria-expanded=\"false\"\n aria-haspopup=\"true\">\n <span class=\"sr-only\">View notifications</span>\n <span class=\"avatar-container\">\n <span class=\"avatar-text\">\n <i class=\"ms-Icon hover:text-blue-400\"\n [class.ms-Icon--MessageFill]=\"unreadCount > 0\"\n [class.text-sky-400]=\"unreadCount > 0\"\n [class.animate-notification]=\"newArrival\"\n [class.ms-Icon--Message]=\"unreadCount === 0\">\n </i>\n </span>\n <span\n *ngIf=\"unreadCount > 0\"\n [class.animate-pulse]=\"newArrival\"\n class=\"absolute top-0 right-0 inline-flex items-center justify-center -mt-1 ml-1 text-xs leading-none text-gray-100 ordinal\">\n {{ unreadCount }}\n </span>\n </span>\n </button>\n\n <!-- Notifications dropdown -->\n <div *ngIf=\"menuExpanded\" class=\"header-notifications-dropdown-with-username\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"messages-menu\">\n <div class=\"max-h-64 overflow-y-auto notification-messages min-h\">\n <ng-container *ngIf=\"!items; else messagesDropDown\" class=\"py-5\">\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\n </ng-container>\n <ng-template #messagesDropDown>\n <ul class=\"pr-1.5\">\n <ng-container *ngIf=\"items; else loading\">\n <ng-container *ngIf=\"items.length <= 0\" class=\"py-5\">\n <div class=\"notifications-nav-link hover:bg-transparent\">\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03BD\u03AD\u03B5\u03C2 \u03B5\u03B9\u03B4\u03BF\u03C0\u03BF\u03B9\u03AE\u03C3\u03B5\u03B9\u03C2</div>\n </ng-container>\n <ng-container *ngFor=\"let message of items; let i = index\">\n <li class=\"mb-2\" [ngClass]=\"{ 'border-l-2 border-blue-500 bg-blue-50 hover:bg-blue-50': !message.data.isRead }\">\n <div class=\"flex justify-between\">\n <div class=\"flex-grow\">\n <a\n [routerLink]=\"message.path\"\n (click)=\"removeItem(i)\"\n class=\"notifications-nav-link grid\"\n [ngClass]=\"!message.data.isRead ? ' hover:bg-blue-50' : 'border-b border-gray-100'\"\n >\n <div class=\"flex flex-col\">\n <div class=\"font-thin tracking-tighter\">\n {{ message.data.creationDate | date: \"EEE, d MMMM\" }}\n </div>\n <div class=\"font-bold\">\n {{ message.data.text }}\n </div>\n </div>\n </a>\n </div>\n </div>\n </li>\n </ng-container>\n </ng-container>\n\n <ng-template #loading>\n <div class=\"h-32 flex items-center justify-center\">\n <div class=\"animate-pulse text-s text-gray-600\">Loading...</div>\n </div>\n </ng-template>\n </ul>\n </ng-template>\n </div>\n <div class=\"p-1 rounded-sm\">\n <a [routerLink]=\"allNotificationsLink!.path\" (click)=\"onClickOutside($event)\">\n <button type=\"button\" class=\"header-notifications-dropdown-view-all-button\">{{allNotificationsLink!.text}}</button>\n </a>\n </div>\n </div>\n</div>\n" }]
72
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
73
+ type: Inject,
74
+ args: [APP_NOTIFICATIONS]
75
+ }] }, { type: undefined, decorators: [{
76
+ type: Inject,
77
+ args: [APP_LINKS]
78
+ }] }] });
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy1pbmRpY2F0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yL25vdGlmaWNhdGlvbnMtaW5kaWNhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9ub3RpZmljYXRpb25zLWluZGljYXRvci9ub3RpZmljYXRpb25zLWluZGljYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFNNUQsTUFBTSxPQUFPLCtCQUErQjtJQVMxQyxZQUE4QyxhQUFpQyxFQUE0QixLQUFXO1FBQXhFLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtRQUE0QixVQUFLLEdBQUwsS0FBSyxDQUFNO1FBUC9HLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLFVBQUssR0FBVSxFQUFFLENBQUM7UUFHakIsZ0JBQVcsR0FBb0IsU0FBUyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxLQUFLLENBQUM7SUFDZ0csQ0FBQztJQUUzSCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBeUIsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDakYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGlCQUFpQixDQUFDO1lBQ2hELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3ZFLElBQUksTUFBTSxDQUFDLEtBQUssRUFBQyxDQUFDO29CQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztvQkFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO29CQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7b0JBQzFCLFVBQVUsQ0FBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUUsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsQ0FBQztZQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25DLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDdkMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFZO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUMsMEVBQTBFO0lBQzFFLGlEQUFpRDtJQUNqRCwrQkFBK0I7SUFDL0IscUNBQXFDO0lBQ3JDLE9BQU87SUFFUCxzRUFBc0U7SUFDdEUsZ0dBQWdHO0lBQ2hHLDJHQUEyRztJQUMzRyxzQ0FBc0M7SUFFeEMsbUNBQW1DO0lBQzVCLGNBQWMsQ0FBQyxNQUFXO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7OEdBaEVVLCtCQUErQixrQkFTdEIsaUJBQWlCLGFBQW9ELFNBQVM7a0dBVHZGLCtCQUErQixtRUNUNUMsb3NIQThFQTs7MkZEckVhLCtCQUErQjtrQkFKM0MsU0FBUzsrQkFDRSw2QkFBNkI7OzBCQVkxQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQTZDLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBcHBOb3RpZmljYXRpb25zLCBOYXZMaW5rIH0gZnJvbSAnLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFQUF9MSU5LUywgQVBQX05PVElGSUNBVElPTlMgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbm90aWZpY2F0aW9ucy1pbmRpY2F0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9ucy1pbmRpY2F0b3IuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNJbmRpY2F0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIG1lbnVFeHBhbmRlZCA9IGZhbHNlO1xuICBwdWJsaWMgdW5yZWFkQ291bnQgPSAwO1xuICBwdWJsaWMgaXRlbXM6IGFueVtdID0gW107XG4gIHB1YmxpYyBhbGxOb3RpZmljYXRpb25zTGluaz86IE5hdkxpbms7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uc1N1YiQ6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpbmJveEFjdGlvbjogYW55IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgbmV3QXJyaXZhbCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQUF9OT1RJRklDQVRJT05TKSBwdWJsaWMgbm90aWZpY2F0aW9ucz86IElBcHBOb3RpZmljYXRpb25zLCBASW5qZWN0KEFQUF9MSU5LUykgcHVibGljIGxpbmtzPzogYW55KSB7IH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ub3RpZmljYXRpb25zU3ViJCkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zU3ViJC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmKHRoaXMubGlua3MgJiYgdGhpcy5saW5rc1snbm90aWZpY2F0aW9ucyddKSB7XG4gICAgICAodGhpcy5saW5rc1snbm90aWZpY2F0aW9ucyddIGFzIE9ic2VydmFibGU8TmF2TGluaz4pLnN1YnNjcmliZShub3RpZmljYXRpb25zTGluayA9PiB7XG4gICAgICAgIHRoaXMuYWxsTm90aWZpY2F0aW9uc0xpbmsgPSBub3RpZmljYXRpb25zTGluaztcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZih0aGlzLm5vdGlmaWNhdGlvbnMpIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9uc1N1YiQgPSB0aGlzLm5vdGlmaWNhdGlvbnM/Lm1lc3NhZ2VzLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICBpZiAocmVzdWx0Lml0ZW1zKXtcbiAgICAgICAgICB0aGlzLm5ld0Fycml2YWwgPSB0cnVlO1xuICAgICAgICAgIHRoaXMudW5yZWFkQ291bnQgPSByZXN1bHQuY291bnQ7XG4gICAgICAgICAgdGhpcy5pdGVtcyA9IHJlc3VsdC5pdGVtcztcbiAgICAgICAgICBzZXRUaW1lb3V0KCAoKSA9PiB7IHRoaXMubmV3QXJyaXZhbCA9IGZhbHNlOyB9LCAxMDAwICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkb0luYm94QWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm5vdGlmaWNhdGlvbnM/LmluYm94QWN0aW9uKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMuaW5ib3hBY3Rpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tZW51RXhwYW5kZWQgPSAhdGhpcy5tZW51RXhwYW5kZWQ7XG4gICAgICB0aGlzLm5nT25EZXN0cm95KCk7XG4gICAgICB0aGlzLm5nT25Jbml0KCk7XG4gICAgfVxuICAgIHRoaXMudW5yZWFkQ291bnQgPSAwO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUl0ZW0oaW5kZXg6bnVtYmVyKXtcbiAgICB0aGlzLml0ZW1zLnNwbGljZShpbmRleCwxKTtcbiAgfVxuXG4gICAgLy8gdGhpcy5ub3RpZmljYXRpb25zU3ViJCA9IHRoaXMubGlua3Mubm90aWZpY2F0aW9ucz8ucGlwZShtYXAocmVzdWx0ID0+IHtcbiAgICAvLyAgIHRoaXMuYWxsSXRlbXNMaW5rID0gcmVzdWx0LmFsbE5vdGlmaWNhdGlvbnM7XG4gICAgLy8gICB0aGlzLml0ZW1zID0gcmVzdWx0Lml0ZW1zO1xuICAgIC8vICAgdGhpcy51bnJlYWRDb3VudCA9IHJlc3VsdC5jb3VudDtcbiAgICAvLyB9KSk7XG5cbiAgICAvLyBbdGhpcy5ub3RpZmljYXRpb25zTGlua3NQYXRoXSBhcyBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk5hdkxpbmtbXT47XG4gICAgLy8gdGhpcy5hbGxOb3RpZmljYXRpb25zTGluayA9IHRoaXMubGlua3NbdGhpcy5hbGxOb3RpZmljYXRpb25zTGlua1BhdGhdIGFzIE9ic2VydmFibGU8TmF2TGluaz47XG4gICAgLy8gdGhpcy51bnJlYWROb3RpZmljYXRpb25zQ291bnRPYnMgPSB0aGlzLmxpbmtzW3RoaXMubm90aWZpY2F0aW9uc0NvdW50ZXJMaW5rc1BhdGhdIGFzIE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICAvLyB0aGlzLmdldFVucmVhZE5vdGlmaWNhdGlvbnNDb3VudCgpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXG4gIHB1YmxpYyBvbkNsaWNrT3V0c2lkZSgkZXZlbnQ6IGFueSkge1xuICAgIHRoaXMubWVudUV4cGFuZGVkID0gZmFsc2U7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlXCJcbihjbGlja091dHNpZGUpPVwib25DbGlja091dHNpZGUoJGV2ZW50KVwiPlxuICA8IS0tIE5vdGlmaWNhdGlvbnMgQnV0dG9uIC0tPlxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJkb0luYm94QWN0aW9uKClcIlxuICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIj5cbiAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5WaWV3IG5vdGlmaWNhdGlvbnM8L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJhdmF0YXItY29udGFpbmVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImF2YXRhci10ZXh0XCI+XG4gICAgICAgIDxpIGNsYXNzPVwibXMtSWNvbiBob3Zlcjp0ZXh0LWJsdWUtNDAwXCJcbiAgICAgICAgICBbY2xhc3MubXMtSWNvbi0tTWVzc2FnZUZpbGxdPVwidW5yZWFkQ291bnQgPiAwXCJcbiAgICAgICAgICBbY2xhc3MudGV4dC1za3ktNDAwXT1cInVucmVhZENvdW50ID4gMFwiXG4gICAgICAgICAgW2NsYXNzLmFuaW1hdGUtbm90aWZpY2F0aW9uXT1cIm5ld0Fycml2YWxcIlxuICAgICAgICAgIFtjbGFzcy5tcy1JY29uLS1NZXNzYWdlXT1cInVucmVhZENvdW50ID09PSAwXCI+XG4gICAgICAgIDwvaT5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuXG4gICAgICAgICpuZ0lmPVwidW5yZWFkQ291bnQgPiAwXCJcbiAgICAgICAgW2NsYXNzLmFuaW1hdGUtcHVsc2VdPVwibmV3QXJyaXZhbFwiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgcmlnaHQtMCBpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgLW10LTEgbWwtMSB0ZXh0LXhzIGxlYWRpbmctbm9uZSB0ZXh0LWdyYXktMTAwIG9yZGluYWxcIj5cbiAgICAgICAge3sgdW5yZWFkQ291bnQgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDwhLS0gTm90aWZpY2F0aW9ucyBkcm9wZG93biAtLT5cbiAgPGRpdiAqbmdJZj1cIm1lbnVFeHBhbmRlZFwiIGNsYXNzPVwiaGVhZGVyLW5vdGlmaWNhdGlvbnMtZHJvcGRvd24td2l0aC11c2VybmFtZVwiIHJvbGU9XCJtZW51XCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgYXJpYS1sYWJlbGxlZGJ5PVwibWVzc2FnZXMtbWVudVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXgtaC02NCBvdmVyZmxvdy15LWF1dG8gbm90aWZpY2F0aW9uLW1lc3NhZ2VzIG1pbi1oXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW1zOyBlbHNlIG1lc3NhZ2VzRHJvcERvd25cIiBjbGFzcz1cInB5LTVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbmF2LWxpbmsgaG92ZXI6YmctdHJhbnNwYXJlbnRcIj7OlM61zr0gzq3Ph861z4TOtSDOvc6tzrXPgiDOtc65zrTOv8+Azr/Ouc6uz4POtc65z4I8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNtZXNzYWdlc0Ryb3BEb3duPlxuICAgICAgICA8dWwgY2xhc3M9XCJwci0xLjVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXM7IGVsc2UgbG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW1zLmxlbmd0aCA8PSAwXCIgY2xhc3M9XCJweS01XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb25zLW5hdi1saW5rIGhvdmVyOmJnLXRyYW5zcGFyZW50XCI+zpTOtc69IM6tz4fOtc+EzrUgzr3Orc61z4IgzrXOuc60zr/PgM6/zrnOrs+DzrXOuc+CPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgaXRlbXM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibWItMlwiIFtuZ0NsYXNzXT1cInsgJ2JvcmRlci1sLTIgYm9yZGVyLWJsdWUtNTAwIGJnLWJsdWUtNTAgaG92ZXI6YmctYmx1ZS01MCc6ICFtZXNzYWdlLmRhdGEuaXNSZWFkIH1cIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJtZXNzYWdlLnBhdGhcIlxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbnMtbmF2LWxpbmsgZ3JpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiIW1lc3NhZ2UuZGF0YS5pc1JlYWQgPyAnIGhvdmVyOmJnLWJsdWUtNTAnIDogJ2JvcmRlci1iIGJvcmRlci1ncmF5LTEwMCdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LXRoaW4gdHJhY2tpbmctdGlnaHRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBtZXNzYWdlLmRhdGEuY3JlYXRpb25EYXRlIHwgZGF0ZTogXCJFRUUsIGQgTU1NTVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJvbGRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgbWVzc2FnZS5kYXRhLnRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkaW5nPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImgtMzIgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFuaW1hdGUtcHVsc2UgdGV4dC1zIHRleHQtZ3JheS02MDBcIj5Mb2FkaW5nLi4uPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicC0xIHJvdW5kZWQtc21cIj5cbiAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cImFsbE5vdGlmaWNhdGlvbnNMaW5rIS5wYXRoXCIgKGNsaWNrKT1cIm9uQ2xpY2tPdXRzaWRlKCRldmVudClcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJoZWFkZXItbm90aWZpY2F0aW9ucy1kcm9wZG93bi12aWV3LWFsbC1idXR0b25cIj57e2FsbE5vdGlmaWNhdGlvbnNMaW5rIS50ZXh0fX08L2J1dHRvbj5cbiAgICAgIDwvYT5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,130 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { Icons } from '../../icons';
3
+ import { MenuOption } from '../../types';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "../drop-down-menu/drop-down-menu.component";
8
+ export class PagerComponent {
9
+ constructor(router) {
10
+ this.router = router;
11
+ // BUSY STATE
12
+ this.busy = false;
13
+ // PAGING
14
+ this.count = null;
15
+ this.page = 1;
16
+ // tslint:disable-next-line:no-input-rename
17
+ this.pageSize = 20;
18
+ // tslint:disable-next-line:no-input-rename
19
+ this.pageSizeOptions = [
20
+ new MenuOption('10', 10),
21
+ new MenuOption('20', 20),
22
+ new MenuOption('30', 30),
23
+ new MenuOption('50', 50),
24
+ new MenuOption('100', 100)
25
+ ];
26
+ this.pages = [];
27
+ this.pageChanged = new EventEmitter();
28
+ this.pageSizeChanged = new EventEmitter();
29
+ this.canPreviousPage = false;
30
+ this.canNextPage = false;
31
+ // SORTING
32
+ // tslint:disable-next-line:no-input-rename
33
+ this.sortOptions = [];
34
+ // tslint:disable-next-line:no-input-rename
35
+ this.sort = null;
36
+ // tslint:disable-next-line:no-input-rename
37
+ this.sortdir = 'desc';
38
+ this.sortChanged = new EventEmitter();
39
+ this.sortdirChanged = new EventEmitter();
40
+ this.sortdirIcon = Icons.SortDesc;
41
+ }
42
+ ngOnChanges(changes) {
43
+ this.calcPages();
44
+ }
45
+ ngOnInit() {
46
+ }
47
+ calcPages() {
48
+ this.pages = [];
49
+ if (this.count && this.count > 0) {
50
+ const pageCount = this.count / this.pageSize;
51
+ for (let i = 0; i < pageCount; i++) {
52
+ this.pages.push(new MenuOption(i + 1 + '', i + 1));
53
+ }
54
+ }
55
+ this.canPreviousPage = this.page > 1;
56
+ this.canNextPage = this.page < this.pages.length;
57
+ }
58
+ nextPage() {
59
+ const next = this.page + 1;
60
+ this.gotoPage(next);
61
+ }
62
+ previousPage() {
63
+ const previous = this.page - 1;
64
+ this.gotoPage(previous);
65
+ }
66
+ gotoPage(page) {
67
+ this.page = page;
68
+ this.pageChanged.emit(page);
69
+ this.calcPages();
70
+ }
71
+ pageSizeOptionChanged(pageSize) {
72
+ this.pageSizeChanged.emit(pageSize);
73
+ this.calcPages();
74
+ }
75
+ pageOptionChanged(page) {
76
+ this.pageChanged.emit(page);
77
+ this.calcPages();
78
+ }
79
+ sortOptionChanged(sort) {
80
+ this.sortChanged.emit(sort);
81
+ }
82
+ toggleSortdir() {
83
+ let sortdir = 'desc';
84
+ if (this.sortdir === 'desc') {
85
+ sortdir = 'asc';
86
+ this.sortdirIcon = Icons.SortAsc;
87
+ }
88
+ else {
89
+ sortdir = 'desc';
90
+ this.sortdirIcon = Icons.SortDesc;
91
+ }
92
+ this.sortdirChanged.emit(sortdir);
93
+ }
94
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PagerComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: PagerComponent, selector: "lib-pager", inputs: { busy: "busy", count: "count", page: "page", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], sortOptions: ["sort-options", "sortOptions"], sort: "sort", sortdir: ["sort-dir", "sortdir"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pager-container\">\n <div class=\"pager-container-near\">\n <ng-content select=\"[pager-near-content]\"></ng-content>\n </div>\n <div class=\"pager-container-far\">\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\n <span class=\"sr-only\">sort direction</span>\n <span class=\"inline-block relative\">\n <i [class]=\"sortdirIcon\"></i>\n </span>\n </button>\n </div>\n <div class=\"pager-pages-container\">\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\n <div class=\"mx-1\">\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\n class=\"pager-arrow-button-left\">\n <span class=\"sr-only\">Previous</span>\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\"\n [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\n class=\"pager-arrow-button-right\">\n <span class=\"sr-only\">Next</span>\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <lib-drop-down-menu *ngIf=\"false && (pages && pages.length > 0)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder", "show-icons"], outputs: ["selectedChange", "selectedChanged"] }] }); }
96
+ }
97
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PagerComponent, decorators: [{
98
+ type: Component,
99
+ args: [{ selector: 'lib-pager', template: "<div class=\"pager-container\">\n <div class=\"pager-container-near\">\n <ng-content select=\"[pager-near-content]\"></ng-content>\n </div>\n <div class=\"pager-container-far\">\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\n <button (click)=\"toggleSortdir()\" [disabled]=\"!sort || busy\" class=\"pager-icon-button\">\n <span class=\"sr-only\">sort direction</span>\n <span class=\"inline-block relative\">\n <i [class]=\"sortdirIcon\"></i>\n </span>\n </button>\n </div>\n <div class=\"pager-pages-container\">\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\n <div class=\"mx-1\">\n <button [disabled]=\"!canPreviousPage || busy\" (click)=\"previousPage()\"\n class=\"pager-arrow-button-left\">\n <span class=\"sr-only\">Previous</span>\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n <button type=\"button\"\n [disabled]=\"!canNextPage || busy\" (click)=\"nextPage()\"\n class=\"pager-arrow-button-right\">\n <span class=\"sr-only\">Next</span>\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path fill-rule=\"evenodd\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\n </svg>\n </button>\n </div>\n <lib-drop-down-menu *ngIf=\"false && (pages && pages.length > 0)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\n </div>\n </div>\n</div>\n" }]
100
+ }], ctorParameters: () => [{ type: i1.Router }], propDecorators: { busy: [{
101
+ type: Input
102
+ }], count: [{
103
+ type: Input
104
+ }], page: [{
105
+ type: Input
106
+ }], pageSize: [{
107
+ type: Input,
108
+ args: ['page-size']
109
+ }], pageSizeOptions: [{
110
+ type: Input,
111
+ args: ['page-size-options']
112
+ }], pageChanged: [{
113
+ type: Output
114
+ }], pageSizeChanged: [{
115
+ type: Output
116
+ }], sortOptions: [{
117
+ type: Input,
118
+ args: ['sort-options']
119
+ }], sort: [{
120
+ type: Input,
121
+ args: ['sort']
122
+ }], sortdir: [{
123
+ type: Input,
124
+ args: ['sort-dir']
125
+ }], sortChanged: [{
126
+ type: Output
127
+ }], sortdirChanged: [{
128
+ type: Output
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL3BhZ2VyL3BhZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9wYWdlci9wYWdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFFekcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQU16QyxNQUFNLE9BQU8sY0FBYztJQWlDekIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFoQ2xDLGFBQWE7UUFDSixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFNBQVM7UUFDQSxVQUFLLEdBQWtCLElBQUksQ0FBQztRQUM1QixTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLDJDQUEyQztRQUN2QixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLDJDQUEyQztRQUNmLG9CQUFlLEdBQWlCO1lBQzFELElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN4QixJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hCLElBQUksVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEIsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztTQUMzQixDQUFDO1FBQ0ssVUFBSyxHQUFpQixFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMvRCxvQkFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3RFLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRTNCLFVBQVU7UUFDViwyQ0FBMkM7UUFDcEIsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBQ3RELDJDQUEyQztRQUM1QixTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMxQywyQ0FBMkM7UUFDeEIsWUFBTyxHQUFrQixNQUFNLENBQUM7UUFDekMsZ0JBQVcsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMvRCxtQkFBYyxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3JFLGdCQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUVFLENBQUM7SUFFdkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTyxTQUFTO1FBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQzdDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckQsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNuRCxDQUFDO0lBRU0sUUFBUTtRQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLFlBQVk7UUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sUUFBUSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxRQUFnQjtRQUMzQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLElBQVk7UUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxJQUFZO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNoQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEdBQUcsTUFBTSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0E5RlUsY0FBYztrR0FBZCxjQUFjLHVjQ1QzQix1dUVBcUNBOzsyRkQ1QmEsY0FBYztrQkFKMUIsU0FBUzsrQkFDRSxXQUFXOzJFQUtaLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVjLFFBQVE7c0JBQTNCLEtBQUs7dUJBQUMsV0FBVztnQkFFVSxlQUFlO3NCQUExQyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFRaEIsV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQU1nQixXQUFXO3NCQUFqQyxLQUFLO3VCQUFDLGNBQWM7Z0JBRU4sSUFBSTtzQkFBbEIsS0FBSzt1QkFBQyxNQUFNO2dCQUVNLE9BQU87c0JBQXpCLEtBQUs7dUJBQUMsVUFBVTtnQkFDUCxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uLy4uL2ljb25zJztcbmltcG9ydCB7IE1lbnVPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1wYWdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdlci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUGFnZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gIC8vIEJVU1kgU1RBVEVcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xuICAvLyBQQUdJTkdcbiAgQElucHV0KCkgY291bnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBwYWdlID0gMTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3BhZ2Utc2l6ZScpIHBhZ2VTaXplID0gMjA7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwYWdlLXNpemUtb3B0aW9ucycpIHBhZ2VTaXplT3B0aW9uczogTWVudU9wdGlvbltdID0gW1xuICAgIG5ldyBNZW51T3B0aW9uKCcxMCcsIDEwKSxcbiAgICBuZXcgTWVudU9wdGlvbignMjAnLCAyMCksXG4gICAgbmV3IE1lbnVPcHRpb24oJzMwJywgMzApLFxuICAgIG5ldyBNZW51T3B0aW9uKCc1MCcsIDUwKSxcbiAgICBuZXcgTWVudU9wdGlvbignMTAwJywgMTAwKVxuICBdO1xuICBwdWJsaWMgcGFnZXM6IE1lbnVPcHRpb25bXSA9IFtdO1xuICBAT3V0cHV0KCkgcGFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIHB1YmxpYyBjYW5QcmV2aW91c1BhZ2UgPSBmYWxzZTtcbiAgcHVibGljIGNhbk5leHRQYWdlID0gZmFsc2U7XG5cbiAgLy8gU09SVElOR1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc29ydC1vcHRpb25zJykgc29ydE9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc29ydCcpIHNvcnQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnc29ydC1kaXInKSBzb3J0ZGlyOiBzdHJpbmcgfCBudWxsID0gJ2Rlc2MnO1xuICBAT3V0cHV0KCkgc29ydENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzb3J0ZGlyQ2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgcHVibGljIHNvcnRkaXJJY29uID0gSWNvbnMuU29ydERlc2M7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIHRoaXMuY2FsY1BhZ2VzKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY1BhZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMucGFnZXMgPSBbXTtcbiAgICBpZiAodGhpcy5jb3VudCAmJiB0aGlzLmNvdW50ID4gMCkge1xuICAgICAgY29uc3QgcGFnZUNvdW50ID0gdGhpcy5jb3VudCAvIHRoaXMucGFnZVNpemU7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHBhZ2VDb3VudDsgaSsrKSB7XG4gICAgICAgIHRoaXMucGFnZXMucHVzaChuZXcgTWVudU9wdGlvbihpICsgMSArICcnLCBpICsgMSkpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNhblByZXZpb3VzUGFnZSA9IHRoaXMucGFnZSA+IDE7XG4gICAgdGhpcy5jYW5OZXh0UGFnZSA9IHRoaXMucGFnZSA8IHRoaXMucGFnZXMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIG5leHRQYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLnBhZ2UgKyAxO1xuICAgIHRoaXMuZ290b1BhZ2UobmV4dCk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXNQYWdlKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXZpb3VzID0gdGhpcy5wYWdlIC0gMTtcbiAgICB0aGlzLmdvdG9QYWdlKHByZXZpb3VzKTtcbiAgfVxuXG4gIHB1YmxpYyBnb3RvUGFnZShwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdChwYWdlKTtcbiAgICB0aGlzLmNhbGNQYWdlcygpO1xuICB9XG5cbiAgcHVibGljIHBhZ2VTaXplT3B0aW9uQ2hhbmdlZChwYWdlU2l6ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlU2l6ZUNoYW5nZWQuZW1pdChwYWdlU2l6ZSk7XG4gICAgdGhpcy5jYWxjUGFnZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBwYWdlT3B0aW9uQ2hhbmdlZChwYWdlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VkLmVtaXQocGFnZSk7XG4gICAgdGhpcy5jYWxjUGFnZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0T3B0aW9uQ2hhbmdlZChzb3J0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNvcnRDaGFuZ2VkLmVtaXQoc29ydCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU29ydGRpcigpOiB2b2lkIHtcbiAgICBsZXQgc29ydGRpciA9ICdkZXNjJztcbiAgICBpZiAodGhpcy5zb3J0ZGlyID09PSAnZGVzYycpIHtcbiAgICAgIHNvcnRkaXIgPSAnYXNjJztcbiAgICAgIHRoaXMuc29ydGRpckljb24gPSBJY29ucy5Tb3J0QXNjO1xuICAgIH0gZWxzZSB7XG4gICAgICBzb3J0ZGlyID0gJ2Rlc2MnO1xuICAgICAgdGhpcy5zb3J0ZGlySWNvbiA9IEljb25zLlNvcnREZXNjO1xuICAgIH1cbiAgICB0aGlzLnNvcnRkaXJDaGFuZ2VkLmVtaXQoc29ydGRpcik7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInBhZ2VyLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwicGFnZXItY29udGFpbmVyLW5lYXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwYWdlci1uZWFyLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInBhZ2VyLWNvbnRhaW5lci1mYXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLWZsZXhcIiAqbmdJZj1cInNvcnRPcHRpb25zICYmIHNvcnRPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxsaWItZHJvcC1kb3duLW1lbnUgW29wdGlvbnNdPVwic29ydE9wdGlvbnNcIiBbc2VsZWN0ZWRdPVwic29ydFwiIChzZWxlY3RlZENoYW5nZWQpPVwic29ydE9wdGlvbkNoYW5nZWQoJGV2ZW50KVwiPjwvbGliLWRyb3AtZG93bi1tZW51PlxuICAgICAgPGJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlU29ydGRpcigpXCIgW2Rpc2FibGVkXT1cIiFzb3J0IHx8IGJ1c3lcIiBjbGFzcz1cInBhZ2VyLWljb24tYnV0dG9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPnNvcnQgZGlyZWN0aW9uPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1ibG9jayByZWxhdGl2ZVwiPlxuICAgICAgICAgIDxpIFtjbGFzc109XCJzb3J0ZGlySWNvblwiPjwvaT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBhZ2VyLXBhZ2VzLWNvbnRhaW5lclwiPlxuICAgICAgPGxpYi1kcm9wLWRvd24tbWVudSBbb3B0aW9uc109XCJwYWdlU2l6ZU9wdGlvbnNcIiBbc2VsZWN0ZWRdPVwicGFnZVNpemVcIiAoc2VsZWN0ZWRDaGFuZ2VkKT1cInBhZ2VTaXplT3B0aW9uQ2hhbmdlZCgkZXZlbnQpXCI+PC9saWItZHJvcC1kb3duLW1lbnU+XG4gICAgICA8ZGl2IGNsYXNzPVwibXgtMVwiPlxuICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCIhY2FuUHJldmlvdXNQYWdlIHx8IGJ1c3lcIiAgKGNsaWNrKT1cInByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBhZ2VyLWFycm93LWJ1dHRvbi1sZWZ0XCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzci1vbmx5XCI+UHJldmlvdXM8L3NwYW4+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImgtNSB3LTVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEyLjcwNyA1LjI5M2ExIDEgMCAwMTAgMS40MTRMOS40MTQgMTBsMy4yOTMgMy4yOTNhMSAxIDAgMDEtMS40MTQgMS40MTRsLTQtNGExIDEgMCAwMTAtMS40MTRsNC00YTEgMSAwIDAxMS40MTQgMHpcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5OZXh0UGFnZSB8fCBidXN5XCIgIChjbGljayk9XCJuZXh0UGFnZSgpXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBhZ2VyLWFycm93LWJ1dHRvbi1yaWdodFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Itb25seVwiPk5leHQ8L3NwYW4+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImgtNSB3LTVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuMjkzIDE0LjcwN2ExIDEgMCAwMTAtMS40MTRMMTAuNTg2IDEwIDcuMjkzIDYuNzA3YTEgMSAwIDAxMS40MTQtMS40MTRsNCA0YTEgMSAwIDAxMCAxLjQxNGwtNCA0YTEgMSAwIDAxLTEuNDE0IDB6XCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8bGliLWRyb3AtZG93bi1tZW51ICpuZ0lmPVwiZmFsc2UgJiYgKHBhZ2VzICYmIHBhZ2VzLmxlbmd0aCA+IDApXCIgW29wdGlvbnNdPVwicGFnZXNcIiBbc2VsZWN0ZWRdPVwicGFnZVwiIChzZWxlY3RlZENoYW5nZWQpPVwicGFnZU9wdGlvbkNoYW5nZWQoJGV2ZW50KVwiPjwvbGliLWRyb3AtZG93bi1tZW51PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,46 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class ProgressBarComponent {
5
+ constructor() {
6
+ this.value = 0;
7
+ this.total = 0;
8
+ this.text = undefined;
9
+ this.busy = false;
10
+ this.percentage = 0;
11
+ }
12
+ ngOnChanges(changes) {
13
+ if (changes.value || changes.total) {
14
+ this.calcPercentage();
15
+ }
16
+ }
17
+ calcPercentage() {
18
+ if (this.total > 0) {
19
+ this.percentage = (this.value / this.total) * 100;
20
+ }
21
+ else {
22
+ this.percentage = 0;
23
+ }
24
+ }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: ProgressBarComponent, selector: "lib-progress-bar", inputs: { value: "value", valueText: ["value-text", "valueText"], total: "total", totalText: ["total-text", "totalText"], text: "text", busy: "busy" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"progress-bar-container\">\n <div class=\"progress-bar-label\" *ngIf=\"!busy\">{{text}} {{valueText ?? value}}/{{totalText ?? total}}</div>\n <div class=\"progress-bar-backdrop progress-bar-label w-2/3\" *ngIf=\"busy\"></div>\n <div class=\"progress-bar-backdrop\">\n <div class=\"progress-bar-inner\" [style]=\"'width:' + percentage + '%' \"></div>\n </div>\n</div>\n ", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: ProgressBarComponent, decorators: [{
29
+ type: Component,
30
+ args: [{ selector: 'lib-progress-bar', template: "<div class=\"progress-bar-container\">\n <div class=\"progress-bar-label\" *ngIf=\"!busy\">{{text}} {{valueText ?? value}}/{{totalText ?? total}}</div>\n <div class=\"progress-bar-backdrop progress-bar-label w-2/3\" *ngIf=\"busy\"></div>\n <div class=\"progress-bar-backdrop\">\n <div class=\"progress-bar-inner\" [style]=\"'width:' + percentage + '%' \"></div>\n </div>\n</div>\n " }]
31
+ }], ctorParameters: () => [], propDecorators: { value: [{
32
+ type: Input
33
+ }], valueText: [{
34
+ type: Input,
35
+ args: ['value-text']
36
+ }], total: [{
37
+ type: Input
38
+ }], totalText: [{
39
+ type: Input,
40
+ args: ['total-text']
41
+ }], text: [{
42
+ type: Input
43
+ }], busy: [{
44
+ type: Input
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9wcm9ncmVzcy1iYXIvcHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLGVBQWUsQ0FBQzs7O0FBTTNFLE1BQU0sT0FBTyxvQkFBb0I7SUFTL0I7UUFSUyxVQUFLLEdBQVcsQ0FBQyxDQUFDO1FBRWxCLFVBQUssR0FBVyxDQUFDLENBQUM7UUFFbEIsU0FBSSxHQUF1QixTQUFTLENBQUM7UUFDckMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUN4QixlQUFVLEdBQVcsQ0FBQyxDQUFDO0lBRzlCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7OEdBeEJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHFPQ05qQyxpWkFPRTs7MkZERFcsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjt3REFJbkIsS0FBSztzQkFBYixLQUFLO2dCQUNlLFNBQVM7c0JBQTdCLEtBQUs7dUJBQUMsWUFBWTtnQkFDVixLQUFLO3NCQUFiLEtBQUs7Z0JBQ2UsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNWLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXByb2dyZXNzLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdmFsdWU6IG51bWJlciA9IDA7XG4gIEBJbnB1dCgndmFsdWUtdGV4dCcpIHZhbHVlVGV4dDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSB0b3RhbDogbnVtYmVyID0gMDtcbiAgQElucHV0KCd0b3RhbC10ZXh0JykgdG90YWxUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgcGVyY2VudGFnZTogbnVtYmVyID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy52YWx1ZSB8fCBjaGFuZ2VzLnRvdGFsKSB7XG4gICAgICB0aGlzLmNhbGNQZXJjZW50YWdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYWxjUGVyY2VudGFnZSgpIHtcbiAgICBpZiAodGhpcy50b3RhbCA+IDApIHtcbiAgICAgIHRoaXMucGVyY2VudGFnZSA9ICh0aGlzLnZhbHVlIC8gdGhpcy50b3RhbCkgKiAxMDA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGVyY2VudGFnZSA9IDA7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXItbGFiZWxcIiAqbmdJZj1cIiFidXN5XCI+e3t0ZXh0fX0ge3t2YWx1ZVRleHQgPz8gdmFsdWV9fS97e3RvdGFsVGV4dCA/PyB0b3RhbH19PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhci1iYWNrZHJvcCBwcm9ncmVzcy1iYXItbGFiZWwgdy0yLzNcIiAqbmdJZj1cImJ1c3lcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWJhY2tkcm9wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtYmFyLWlubmVyXCIgW3N0eWxlXT1cIid3aWR0aDonICsgcGVyY2VudGFnZSArICclJyBcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuICAiXX0=
@@ -0,0 +1,87 @@
1
+ import { SidePaneOverlayType, SidePaneSize } from './../../types';
2
+ import { Component, Input, Inject, EventEmitter, Output } from '@angular/core';
3
+ import { DOCUMENT } from '@angular/common';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@angular/common";
7
+ export class SidePaneComponent {
8
+ constructor(router, document) {
9
+ this.router = router;
10
+ this.document = document;
11
+ // tslint:disable-next-line:no-input-rename
12
+ this.showPane = false;
13
+ this.sizeContainerStyle = 'side-pane-box-size';
14
+ this.overlayStyle = 'side-pane-overlay';
15
+ this.onComplete = new EventEmitter();
16
+ this.onOpen = new EventEmitter();
17
+ this.onClose = new EventEmitter();
18
+ }
19
+ ngOnDestroy() {
20
+ }
21
+ ngOnInit() {
22
+ }
23
+ onSidePaneActivated(component) {
24
+ let sizeStyleSuffix = '';
25
+ const state = this.router.getCurrentNavigation()?.extras.state;
26
+ if (state) {
27
+ if (state.paneSize) {
28
+ if (state.paneSize === SidePaneSize.Small25) {
29
+ sizeStyleSuffix = '-25';
30
+ }
31
+ else if (state.paneSize === SidePaneSize.Medium50) {
32
+ sizeStyleSuffix = '-50';
33
+ }
34
+ else if (state.paneSize === SidePaneSize.Large75) {
35
+ sizeStyleSuffix = '-75';
36
+ }
37
+ }
38
+ if (state.paneOverlay) {
39
+ if (state.paneOverlay === SidePaneOverlayType.None) {
40
+ this.overlayStyle = 'side-pane-overlay-opacity-0';
41
+ }
42
+ else if (state.paneOverlay === SidePaneOverlayType.Dark) {
43
+ this.overlayStyle = 'side-pane-overlay-opacity-50';
44
+ }
45
+ else {
46
+ this.overlayStyle = 'side-pane-overlay';
47
+ }
48
+ }
49
+ }
50
+ this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;
51
+ this.show();
52
+ }
53
+ onSidePaneDeactivated($event) {
54
+ this.hide();
55
+ }
56
+ show() {
57
+ this.document.body.classList.add('modal-active');
58
+ this.showPane = true;
59
+ this.onOpen.emit(true);
60
+ }
61
+ hide() {
62
+ this.showPane = false;
63
+ this.document.body.classList.remove('modal-active');
64
+ this.onClose.emit(false);
65
+ // prepei na allaxei auto!
66
+ this.onComplete.emit(true);
67
+ }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SidePaneComponent, deps: [{ token: i1.Router }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: SidePaneComponent, selector: "lib-side-pane", inputs: { showPane: ["visible", "showPane"] }, outputs: { onComplete: "onComplete", onOpen: "onOpen", onClose: "onClose" }, ngImport: i0, template: "<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\n <div [class]=\"sizeContainerStyle\">\n <div class=\"side-pane\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
70
+ }
71
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SidePaneComponent, decorators: [{
72
+ type: Component,
73
+ args: [{ selector: 'lib-side-pane', template: "<div *ngIf=\"showPane\" class=\"side-pane-outer-container\" aria-labelledby=\"slide-over\" role=\"dialog\" aria-modal=\"true\">\n <div [class]=\"showPane ? overlayStyle : 'hidden'\" aria-hidden=\"true\"></div>\n <div [class]=\"showPane ? 'side-pane-container' : 'hidden'\">\n <div [class]=\"sizeContainerStyle\">\n <div class=\"side-pane\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n</div>\n" }]
74
+ }], ctorParameters: () => [{ type: i1.Router }, { type: undefined, decorators: [{
75
+ type: Inject,
76
+ args: [DOCUMENT]
77
+ }] }], propDecorators: { showPane: [{
78
+ type: Input,
79
+ args: ['visible']
80
+ }], onComplete: [{
81
+ type: Output
82
+ }], onOpen: [{
83
+ type: Output
84
+ }], onClose: [{
85
+ type: Output
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZS1wYW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9zaWRlLXBhbmUvc2lkZS1wYW5lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9zaWRlLXBhbmUvc2lkZS1wYW5lLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQU0zQyxNQUFNLE9BQU8saUJBQWlCO0lBVTVCLFlBQW9CLE1BQWMsRUFBNEIsUUFBYTtRQUF2RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQTRCLGFBQVEsR0FBUixRQUFRLENBQUs7UUFUM0UsMkNBQTJDO1FBRWpDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDcEIsdUJBQWtCLEdBQUcsb0JBQW9CLENBQUM7UUFDMUMsaUJBQVksR0FBRyxtQkFBbUIsQ0FBQztRQUNoQyxlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFDaEUsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3BELFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVpQixDQUFDO0lBRWpGLFdBQVc7SUFDWCxDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxTQUFjO1FBQ3ZDLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztRQUN6QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUMvRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ25CLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQzVDLGVBQWUsR0FBRyxLQUFLLENBQUM7Z0JBQzFCLENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDcEQsZUFBZSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsQ0FBQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLEtBQUssWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNuRCxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUMxQixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssbUJBQW1CLENBQUMsSUFBSSxFQUFHLENBQUM7b0JBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsNkJBQTZCLENBQUM7Z0JBQ3BELENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO29CQUMxRCxJQUFJLENBQUMsWUFBWSxHQUFHLDhCQUE4QixDQUFDO2dCQUNyRCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFlBQVksR0FBRyxtQkFBbUIsQ0FBQztnQkFDMUMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixlQUFlLEVBQUUsQ0FBQztRQUNqRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0scUJBQXFCLENBQUMsTUFBVztRQUN0QyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUU3QixDQUFDOzhHQTlEVSxpQkFBaUIsd0NBVWdCLFFBQVE7a0dBVnpDLGlCQUFpQixpTENUOUIsaWJBVUE7OzJGRERhLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDRSxlQUFlOzswQkFhWSxNQUFNOzJCQUFDLFFBQVE7eUNBUDFDLFFBQVE7c0JBRGpCLEtBQUs7dUJBQUMsU0FBUztnQkFJTixVQUFVO3NCQUFuQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lkZVBhbmVPdmVybGF5VHlwZSwgU2lkZVBhbmVTaXplIH0gZnJvbSAnLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBPbkRlc3Ryb3ksIEluamVjdCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXNpZGUtcGFuZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaWRlLXBhbmUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNpZGVQYW5lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgndmlzaWJsZScpXG4gIHByb3RlY3RlZCBzaG93UGFuZSA9IGZhbHNlO1xuICBwdWJsaWMgc2l6ZUNvbnRhaW5lclN0eWxlID0gJ3NpZGUtcGFuZS1ib3gtc2l6ZSc7XG4gIHB1YmxpYyBvdmVybGF5U3R5bGUgPSAnc2lkZS1wYW5lLW92ZXJsYXknO1xuICBAT3V0cHV0KCkgb25Db21wbGV0ZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgb25PcGVuOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgb25DbG9zZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSwpIHsgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCAge1xuICB9XG5cbiAgcHVibGljIG9uU2lkZVBhbmVBY3RpdmF0ZWQoY29tcG9uZW50OiBhbnkpOiB2b2lkICB7XG4gICAgbGV0IHNpemVTdHlsZVN1ZmZpeCA9ICcnO1xuICAgIGNvbnN0IHN0YXRlID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKT8uZXh0cmFzLnN0YXRlO1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgaWYgKHN0YXRlLnBhbmVTaXplKSB7XG4gICAgICAgIGlmIChzdGF0ZS5wYW5lU2l6ZSA9PT0gU2lkZVBhbmVTaXplLlNtYWxsMjUpIHtcbiAgICAgICAgICBzaXplU3R5bGVTdWZmaXggPSAnLTI1JztcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0ZS5wYW5lU2l6ZSA9PT0gU2lkZVBhbmVTaXplLk1lZGl1bTUwKSB7XG4gICAgICAgICAgc2l6ZVN0eWxlU3VmZml4ID0gJy01MCc7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdGUucGFuZVNpemUgPT09IFNpZGVQYW5lU2l6ZS5MYXJnZTc1KSB7XG4gICAgICAgICAgc2l6ZVN0eWxlU3VmZml4ID0gJy03NSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzdGF0ZS5wYW5lT3ZlcmxheSkge1xuICAgICAgICBpZiAoc3RhdGUucGFuZU92ZXJsYXkgPT09IFNpZGVQYW5lT3ZlcmxheVR5cGUuTm9uZSkgIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlTdHlsZSA9ICdzaWRlLXBhbmUtb3ZlcmxheS1vcGFjaXR5LTAnO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLnBhbmVPdmVybGF5ID09PSBTaWRlUGFuZU92ZXJsYXlUeXBlLkRhcmspIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlTdHlsZSA9ICdzaWRlLXBhbmUtb3ZlcmxheS1vcGFjaXR5LTUwJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm92ZXJsYXlTdHlsZSA9ICdzaWRlLXBhbmUtb3ZlcmxheSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zaXplQ29udGFpbmVyU3R5bGUgPSBgc2lkZS1wYW5lLWJveC1zaXplJHtzaXplU3R5bGVTdWZmaXh9YDtcbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNpZGVQYW5lRGVhY3RpdmF0ZWQoJGV2ZW50OiBhbnkpOiB2b2lkICB7ICBcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdtb2RhbC1hY3RpdmUnKTtcbiAgICB0aGlzLnNob3dQYW5lID0gdHJ1ZTtcbiAgICB0aGlzLm9uT3Blbi5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIGhpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93UGFuZSA9IGZhbHNlO1xuICAgIHRoaXMuZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdtb2RhbC1hY3RpdmUnKTtcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdChmYWxzZSk7XG4gICAgLy8gcHJlcGVpIG5hIGFsbGF4ZWkgYXV0byFcbiAgICB0aGlzLm9uQ29tcGxldGUuZW1pdCh0cnVlKTtcblxuICB9XG5cbn1cbiIsIjxkaXYgKm5nSWY9XCJzaG93UGFuZVwiIGNsYXNzPVwic2lkZS1wYW5lLW91dGVyLWNvbnRhaW5lclwiIGFyaWEtbGFiZWxsZWRieT1cInNsaWRlLW92ZXJcIiByb2xlPVwiZGlhbG9nXCIgYXJpYS1tb2RhbD1cInRydWVcIj5cbiAgPGRpdiBbY2xhc3NdPVwic2hvd1BhbmUgPyBvdmVybGF5U3R5bGUgOiAnaGlkZGVuJ1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICA8ZGl2IFtjbGFzc109XCJzaG93UGFuZSA/ICdzaWRlLXBhbmUtY29udGFpbmVyJyA6ICdoaWRkZW4nXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwic2l6ZUNvbnRhaW5lclN0eWxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2lkZS1wYW5lXCI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,29 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class SkeletonLoaderComponent {
5
+ constructor() {
6
+ this.count = 7;
7
+ this.type = 'tiles'; // 'large-tile', 'table'
8
+ this.deckClass = 'cards-deck-4'; // 'large-tile', 'table'
9
+ }
10
+ ngOnInit() {
11
+ }
12
+ counter(i) {
13
+ return new Array(i);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SkeletonLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: { count: "count", type: "type", deckClass: ["deck-class", "deckClass"] }, ngImport: i0, template: "<div [class]=\"deckClass\" *ngIf=\"type === 'tiles'\">\n <div class=\"relative p-4 w-80 bg-white overflow-hidden shadow hover:shadow-md rounded-sm\" *ngFor=\"let i of counter(count)\">\n <div class=\"animate-pulse flex flex-col\">\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\n \n <div class=\"flex flex-col mt-5\">\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n </div>\n\n </div>\n </div>\n</div>\n \n<div class=\"cards-deck-1\" *ngIf=\"type === 'table'\">\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\" *ngFor=\"let i of counter(count)\">\n <div class=\"animate-pulse flex space-x-4\">\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\">&nbsp;</div>\n <div class=\"flex-1 space-y-4 py-1\">\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\">&nbsp;</div>\n <div class=\"space-y-2\">\n <div class=\"h-4 bg-light-blue-400 rounded\">&nbsp;</div>\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\">&nbsp;</div>\n </div>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: SkeletonLoaderComponent, decorators: [{
19
+ type: Component,
20
+ args: [{ selector: 'lib-skeleton-loader', template: "<div [class]=\"deckClass\" *ngIf=\"type === 'tiles'\">\n <div class=\"relative p-4 w-80 bg-white overflow-hidden shadow hover:shadow-md rounded-sm\" *ngFor=\"let i of counter(count)\">\n <div class=\"animate-pulse flex flex-col\">\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\n \n <div class=\"flex flex-col mt-5\">\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\n </div>\n\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\n </div>\n\n </div>\n </div>\n</div>\n \n<div class=\"cards-deck-1\" *ngIf=\"type === 'table'\">\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\" *ngFor=\"let i of counter(count)\">\n <div class=\"animate-pulse flex space-x-4\">\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\">&nbsp;</div>\n <div class=\"flex-1 space-y-4 py-1\">\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\">&nbsp;</div>\n <div class=\"space-y-2\">\n <div class=\"h-4 bg-light-blue-400 rounded\">&nbsp;</div>\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\">&nbsp;</div>\n </div>\n </div>\n </div>\n </div>\n</div>" }]
21
+ }], ctorParameters: () => [], propDecorators: { count: [{
22
+ type: Input
23
+ }], type: [{
24
+ type: Input
25
+ }], deckClass: [{
26
+ type: Input,
27
+ args: ['deck-class']
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9za2VsZXRvbi1sb2FkZXIvc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9za2VsZXRvbi1sb2FkZXIvc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFPekQsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQztRQUhTLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixTQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsd0JBQXdCO1FBQzVCLGNBQVMsR0FBRyxjQUFjLENBQUMsQ0FBQyx3QkFBd0I7SUFDekQsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUVNLE9BQU8sQ0FBQyxDQUFTO1FBQ3RCLE9BQU8sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIsQ0FBQzs4R0FYVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qiw2SUNQcEMseThDQWlDTTs7MkZEMUJPLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFFRSxxQkFBcUI7d0RBSXRCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ2UsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGliLXNrZWxldG9uLWxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFNrZWxldG9uTG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgY291bnQgPSA3O1xuICBASW5wdXQoKSB0eXBlID0gJ3RpbGVzJzsgLy8gJ2xhcmdlLXRpbGUnLCAndGFibGUnXG4gIEBJbnB1dCgnZGVjay1jbGFzcycpIGRlY2tDbGFzcyA9ICdjYXJkcy1kZWNrLTQnOyAvLyAnbGFyZ2UtdGlsZScsICd0YWJsZSdcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBjb3VudGVyKGk6IG51bWJlcik6IG51bWJlcltdIHtcbiAgICByZXR1cm4gbmV3IEFycmF5KGkpO1xuICB9XG5cbn1cbiIsIjxkaXYgW2NsYXNzXT1cImRlY2tDbGFzc1wiICpuZ0lmPVwidHlwZSA9PT0gJ3RpbGVzJ1wiPlxuICA8ZGl2IGNsYXNzPVwicmVsYXRpdmUgcC00IHctODAgYmctd2hpdGUgb3ZlcmZsb3ctaGlkZGVuIHNoYWRvdyBob3ZlcjpzaGFkb3ctbWQgcm91bmRlZC1zbVwiICAqbmdGb3I9XCJsZXQgaSBvZiBjb3VudGVyKGNvdW50KVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlLXB1bHNlIGZsZXggZmxleC1jb2xcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkIHctZnVsbCBoLTMyIGJnLWdyYXktMjAwXCI+PC9kaXY+XG4gICAgICBcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG10LTVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBoLTUgYmctZ3JheS0yMDAgcm91bmRlZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiB3LTEwLzEyIGgtMyBiZy1ncmF5LTIwMCByb3VuZGVkXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIHctOC8xMiBoLTMgYmctZ3JheS0yMDAgcm91bmRlZFwiPjwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy0yIG10LTUgZ2FwLXgtMiBnYXAteS0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIHctZnVsbCBoLTMgYmctZ3JheS0yMDAgcm91bmRlZFwiPjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiB3LWZ1bGwgaC0zIGJnLWdyYXktMjAwIHJvdW5kZWRcIj48L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4gIFxuPGRpdiBjbGFzcz1cImNhcmRzLWRlY2stMVwiICAqbmdJZj1cInR5cGUgPT09ICd0YWJsZSdcIj5cbiAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItbGlnaHQtYmx1ZS0zMDAgc2hhZG93IHJvdW5kZWQtc20gcC00IG1heC13LXNtIHctZnVsbCBteC1hdXRvIG1iLTRcIiAqbmdGb3I9XCJsZXQgaSBvZiBjb3VudGVyKGNvdW50KVwiPlxuICAgIDxkaXYgY2xhc3M9XCJhbmltYXRlLXB1bHNlIGZsZXggc3BhY2UteC00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC1mdWxsIGJnLWxpZ2h0LWJsdWUtNDAwIGgtMTIgdy0xMlwiPiZuYnNwOzwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMSBzcGFjZS15LTQgcHktMVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaC00IGJnLWxpZ2h0LWJsdWUtNDAwIHJvdW5kZWQgdy0zLzRcIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNwYWNlLXktMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTQgYmctbGlnaHQtYmx1ZS00MDAgcm91bmRlZFwiPiZuYnNwOzwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTQgYmctbGlnaHQtYmx1ZS00MDAgcm91bmRlZCB3LTUvNlwiPiZuYnNwOzwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
@@ -0,0 +1,49 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class StatsGridComponent {
5
+ constructor() {
6
+ this.busy = false;
7
+ this.count = 6;
8
+ this.loader = ['', '', '', '', '', ''];
9
+ this.mode = 'normal';
10
+ this.labels = ['Online', 'Offline', 'Faulted'];
11
+ this.values = [10, 20, 30];
12
+ this.colors = [
13
+ 'rgb(53, 177, 201, 0.6)',
14
+ 'rgb(168, 162, 158, 0.2)',
15
+ 'rgb(233, 96, 96, 0.8)'
16
+ ];
17
+ }
18
+ ngOnChanges(changes) {
19
+ if (changes.count) {
20
+ this.loader = [];
21
+ for (let i = 0; i <= this.count; i++) {
22
+ this.loader.push('');
23
+ }
24
+ }
25
+ }
26
+ isNumber(value) {
27
+ return !isNaN(Number(value));
28
+ ;
29
+ }
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: StatsGridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: StatsGridComponent, selector: "lib-stats-grid", inputs: { busy: "busy", count: "count", mode: "mode", labels: "labels", values: "values", colors: "colors" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"!busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" [style]=\"'border-color:' + colors[i]\">\n <div class=\"text-xs text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i]}}</div>\n </div>\n </li>\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" [style]=\"'border-color:' + colors[i]\">\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i]}}</div>\n <div class=\"text-xs max-w-18 lg:w-auto truncate text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div *ngIf=\"busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div> ", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }] }); }
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: StatsGridComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'lib-stats-grid', template: "<div *ngIf=\"!busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" [style]=\"'border-color:' + colors[i]\">\n <div class=\"text-xs text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-sm md:text-lg text-ellipsis overflow-hidden\">{{values[i]}}</div>\n </div>\n </li>\n <li class=\"col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" [style]=\"'border-color:' + colors[i]\">\n <div *ngIf=\"isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i] | number:'1.0-2':'el'}}</div>\n <div *ngIf=\"!isNumber(values[i])\" class=\"font-medium text-xs lg:text-sm text-ellipsis overflow-hidden\">{{values[i]}}</div>\n <div class=\"text-xs max-w-18 lg:w-auto truncate text-ellipsis overflow-hidden\">{{labels[i]}}</div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div *ngIf=\"busy\">\n <ul role=\"list\" class=\"grid gap-1\"\n [class.grid-cols-4]=\"mode==='normal'\"\n [class.grid-flow-col]=\"mode!=='normal'\">\n <ng-container *ngFor=\"let value of values; index as i\">\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode==='normal'\">\n <div class=\"grid-cols-1 border-l-2 px-1\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n <li class=\"animate-pulse col-span-1 flex pb-2\" *ngIf=\"mode!=='normal'\">\n <div class=\"grid-cols-1 border-l-2 pl-1 pr-2\" style=\"border-color:rgb(168, 162, 158, 0.2)\">\n <div class=\"rounded-md bg-slate-400/25 h-3 w-14\"></div>\n <div class=\"rounded-md bg-slate-400/25 mt-2 h-4 w-6\"></div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div> " }]
36
+ }], ctorParameters: () => [], propDecorators: { busy: [{
37
+ type: Input
38
+ }], count: [{
39
+ type: Input
40
+ }], mode: [{
41
+ type: Input
42
+ }], labels: [{
43
+ type: Input
44
+ }], values: [{
45
+ type: Input
46
+ }], colors: [{
47
+ type: Input
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMtZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvc3RhdHMtZ3JpZC9zdGF0cy1ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9zdGF0cy1ncmlkL3N0YXRzLWdyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7QUFPM0UsTUFBTSxPQUFPLGtCQUFrQjtJQWE3QjtRQVpTLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ1osV0FBTSxHQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2QyxTQUFJLEdBQVcsUUFBUSxDQUFDO1FBQ3hCLFdBQU0sR0FBYSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDcEQsV0FBTSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQWE7WUFDMUIsd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6Qix1QkFBdUI7U0FDeEIsQ0FBQztJQUdGLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQVU7UUFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUFBLENBQUM7SUFDaEMsQ0FBQzs4R0EzQlUsa0JBQWtCO2tHQUFsQixrQkFBa0IseUxDUC9CLG04RUF5Q1U7OzJGRGxDRyxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZ0JBQWdCO3dEQUlqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zdGF0cy1ncmlkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3N0YXRzLWdyaWQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFN0YXRzR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGJ1c3kgPSBmYWxzZTtcbiAgQElucHV0KCkgY291bnQgPSA2O1xuICBwdWJsaWMgbG9hZGVyOiBhbnlbXSA9IFsnJywgJycsICcnLCAnJywgJycsICcnXTtcbiAgQElucHV0KCkgbW9kZTogc3RyaW5nID0gJ25vcm1hbCc7XG4gIEBJbnB1dCgpIGxhYmVsczogc3RyaW5nW10gPSBbJ09ubGluZScsICdPZmZsaW5lJywgJ0ZhdWx0ZWQnXTtcbiAgQElucHV0KCkgdmFsdWVzOiBudW1iZXJbXSA9IFsxMCwgMjAsIDMwXTtcbiAgQElucHV0KCkgY29sb3JzOiBzdHJpbmdbXSA9IFtcbiAgICAncmdiKDUzLCAxNzcsIDIwMSwgMC42KScsXG4gICAgJ3JnYigxNjgsIDE2MiwgMTU4LCAwLjIpJyxcbiAgICAncmdiKDIzMywgOTYsIDk2LCAwLjgpJ1xuICBdO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmNvdW50KSB7XG4gICAgICB0aGlzLmxvYWRlciA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gdGhpcy5jb3VudDsgaSsrKSB7XG4gICAgICAgIHRoaXMubG9hZGVyLnB1c2goJycpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc051bWJlcih2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc05hTihOdW1iZXIodmFsdWUpKTs7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCIhYnVzeVwiPlxuICAgIDx1bCByb2xlPVwibGlzdFwiIGNsYXNzPVwiZ3JpZCBnYXAtMVwiXG4gICAgICAgIFtjbGFzcy5ncmlkLWNvbHMtNF09XCJtb2RlPT09J25vcm1hbCdcIlxuICAgICAgICBbY2xhc3MuZ3JpZC1mbG93LWNvbF09XCJtb2RlIT09J25vcm1hbCdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHZhbHVlczsgaW5kZXggYXMgaVwiPlxuICAgICAgICA8bGkgY2xhc3M9XCJjb2wtc3Bhbi0xIGZsZXggcGItMlwiICpuZ0lmPVwibW9kZT09PSdub3JtYWwnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtY29scy0xIGJvcmRlci1sLTIgcHgtMVwiIFtzdHlsZV09XCInYm9yZGVyLWNvbG9yOicgKyBjb2xvcnNbaV1cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZWxsaXBzaXMgb3ZlcmZsb3ctaGlkZGVuXCI+e3tsYWJlbHNbaV19fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzTnVtYmVyKHZhbHVlc1tpXSlcIiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtc20gbWQ6dGV4dC1sZyB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlblwiPnt7dmFsdWVzW2ldIHwgbnVtYmVyOicxLjAtMic6J2VsJ319PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWlzTnVtYmVyKHZhbHVlc1tpXSlcIiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtc20gbWQ6dGV4dC1sZyB0ZXh0LWVsbGlwc2lzIG92ZXJmbG93LWhpZGRlblwiPnt7dmFsdWVzW2ldfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwiY29sLXNwYW4tMSBmbGV4IHBiLTJcIiAqbmdJZj1cIm1vZGUhPT0nbm9ybWFsJ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJncmlkLWNvbHMtMSBib3JkZXItbC0yIHBsLTEgcHItMlwiIFtzdHlsZV09XCInYm9yZGVyLWNvbG9yOicgKyBjb2xvcnNbaV1cIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc051bWJlcih2YWx1ZXNbaV0pXCIgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXhzIGxnOnRleHQtc20gdGV4dC1lbGxpcHNpcyBvdmVyZmxvdy1oaWRkZW5cIj57e3ZhbHVlc1tpXSB8IG51bWJlcjonMS4wLTInOidlbCd9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFpc051bWJlcih2YWx1ZXNbaV0pXCIgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LXhzIGxnOnRleHQtc20gdGV4dC1lbGxpcHNpcyBvdmVyZmxvdy1oaWRkZW5cIj57e3ZhbHVlc1tpXX19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14cyBtYXgtdy0xOCBsZzp3LWF1dG8gdHJ1bmNhdGUgdGV4dC1lbGxpcHNpcyBvdmVyZmxvdy1oaWRkZW5cIj57e2xhYmVsc1tpXX19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbiAgPGRpdiAqbmdJZj1cImJ1c3lcIj5cbiAgICA8dWwgcm9sZT1cImxpc3RcIiBjbGFzcz1cImdyaWQgZ2FwLTFcIlxuICAgICAgICBbY2xhc3MuZ3JpZC1jb2xzLTRdPVwibW9kZT09PSdub3JtYWwnXCJcbiAgICAgICAgW2NsYXNzLmdyaWQtZmxvdy1jb2xdPVwibW9kZSE9PSdub3JtYWwnXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiB2YWx1ZXM7IGluZGV4IGFzIGlcIj5cbiAgICAgICAgPGxpIGNsYXNzPVwiYW5pbWF0ZS1wdWxzZSBjb2wtc3Bhbi0xIGZsZXggcGItMlwiICpuZ0lmPVwibW9kZT09PSdub3JtYWwnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtY29scy0xIGJvcmRlci1sLTIgcHgtMVwiIHN0eWxlPVwiYm9yZGVyLWNvbG9yOnJnYigxNjgsIDE2MiwgMTU4LCAwLjIpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm91bmRlZC1tZCBiZy1zbGF0ZS00MDAvMjUgaC0zIHctMTRcIj48L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLW1kIGJnLXNsYXRlLTQwMC8yNSBtdC0yIGgtNCB3LTZcIj48L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGxpIGNsYXNzPVwiYW5pbWF0ZS1wdWxzZSBjb2wtc3Bhbi0xIGZsZXggcGItMlwiICpuZ0lmPVwibW9kZSE9PSdub3JtYWwnXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdyaWQtY29scy0xIGJvcmRlci1sLTIgcGwtMSBwci0yXCIgc3R5bGU9XCJib3JkZXItY29sb3I6cmdiKDE2OCwgMTYyLCAxNTgsIDAuMilcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLW1kIGJnLXNsYXRlLTQwMC8yNSBoLTMgdy0xNFwiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdW5kZWQtbWQgYmctc2xhdGUtNDAwLzI1IG10LTIgaC00IHctNlwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC91bD5cbiAgPC9kaXY+ICAiXX0=
@@ -1,16 +1,16 @@
1
- import { Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class LibStepInfoDirective {
4
- constructor(template) {
5
- this.template = template;
6
- }
7
- }
8
- LibStepInfoDirectivefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LibStepInfoDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
- LibStepInfoDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.0", type: LibStepInfoDirective, selector: "[libStepInfo]", ngImport: i0 });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LibStepInfoDirective, decorators: [{
11
- type: Directive,
12
- args: [{
13
- selector: '[libStepInfo]',
14
- }]
15
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXN0ZXAtaW5mby5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1pbmZvLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQUt2RCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQzs7aUhBRHpDLG9CQUFvQjtxR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tsaWJTdGVwSW5mb10nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliU3RlcEluZm9EaXJlY3RpdmUge1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cclxufVxyXG4iXX0=
1
+ import { Directive } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class LibStepInfoDirective {
4
+ constructor(template) {
5
+ this.template = template;
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: LibStepInfoDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { thisdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.6", type: LibStepInfoDirective, selector: "[libStepInfo]", ngImport: i0 }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: LibStepInfoDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: '[libStepInfo]',
14
+ }]
15
+ }], ctorParameters: () => [{ type: i0.TemplateRef }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXN0ZXAtaW5mby5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvc3RlcHBlci9saWItc3RlcC1pbmZvLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFlLE1BQU0sZUFBZSxDQUFDOztBQUt2RCxNQUFNLE9BQU8sb0JBQW9CO0lBQzdCLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQzs4R0FEekMsb0JBQW9CO2tHQUFwQixvQkFBb0I7OzJGQUFwQixvQkFBb0I7a0JBSGhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tsaWJTdGVwSW5mb10nLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJTdGVwSW5mb0RpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cbn1cbiJdfQ==