@tuki-io/tuki-widgets 0.0.219-dev.6 → 0.0.219-dev.8

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 (165) hide show
  1. package/README.md +24 -24
  2. package/esm2020/contact-center/cc-readiness/cc-readiness.module.mjs +1 -1
  3. package/esm2020/contact-center/cc-readiness/cc-readiness.service.mjs +1 -1
  4. package/esm2020/contact-center/cc-readiness/widgets/licences-requirement/licences-requirement.component.mjs +3 -3
  5. package/esm2020/di2mt/widgets/site-upgrade/progress-bar/progress-bar.component.mjs +3 -3
  6. package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +2 -2
  7. package/esm2020/di2mt/widgets/upgrade-overview/cards/pending-activation-users/pending-activation-users.component.mjs +17 -17
  8. package/esm2020/lib/widgets.component.mjs +9 -9
  9. package/esm2020/lib/widgets.module.mjs +1 -1
  10. package/esm2020/lib/widgets.service.mjs +1 -1
  11. package/esm2020/public-api.mjs +1 -1
  12. package/esm2020/user-creation/src/app.constants.mjs +1 -1
  13. package/esm2020/user-creation/src/classes/notification.mjs +1 -1
  14. package/esm2020/user-creation/src/classes/site.mjs +1 -1
  15. package/esm2020/user-creation/src/environments/environment.mjs +1 -1
  16. package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +1 -1
  17. package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +3 -3
  18. package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +1 -1
  19. package/esm2020/user-creation/src/shared/services/notification.service.mjs +1 -1
  20. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +1 -1
  21. package/esm2020/user-creation/src/shared/services/utils.mjs +1 -1
  22. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +3 -3
  23. package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +1 -1
  24. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +1 -1
  25. package/esm2020/user-creation/src/utils/device-name-validation.mjs +1 -1
  26. package/esm2020/user-creation/src/utils/model.mjs +1 -1
  27. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +1 -1
  28. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +3 -3
  29. package/esm2020/user-device-manage/public-api.mjs +1 -1
  30. package/esm2020/user-device-manage/src/app.constants.mjs +1 -1
  31. package/esm2020/user-device-manage/src/classes/device.mjs +1 -1
  32. package/esm2020/user-device-manage/src/classes/deviceProfile.mjs +1 -1
  33. package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +1 -1
  34. package/esm2020/user-device-manage/src/classes/line-association.mjs +1 -1
  35. package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +1 -1
  36. package/esm2020/user-device-manage/src/classes/line-directory.mjs +1 -1
  37. package/esm2020/user-device-manage/src/classes/line.mjs +1 -1
  38. package/esm2020/user-device-manage/src/classes/notification.mjs +1 -1
  39. package/esm2020/user-device-manage/src/classes/recording-options.mjs +1 -1
  40. package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
  41. package/esm2020/user-device-manage/src/classes/site-defaults.mjs +1 -1
  42. package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +1 -1
  43. package/esm2020/user-device-manage/src/classes/types.mjs +1 -1
  44. package/esm2020/user-device-manage/src/common-functions.mjs +1 -1
  45. package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +3 -3
  46. package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +3 -3
  47. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +3 -3
  48. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +3 -3
  49. package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +1 -1
  50. package/esm2020/user-device-manage/src/device-info/device-info.component.mjs +3 -3
  51. package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +2 -2
  52. package/esm2020/user-device-manage/src/environments/environment.mjs +1 -1
  53. package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +1 -1
  54. package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  55. package/esm2020/user-device-manage/src/material.module.mjs +1 -1
  56. package/esm2020/user-device-manage/src/notifications/notification.component.mjs +3 -3
  57. package/esm2020/user-device-manage/src/pipes/mac-address.pipe.mjs +1 -1
  58. package/esm2020/user-device-manage/src/services/api.service.mjs +1 -1
  59. package/esm2020/user-device-manage/src/services/device.service.mjs +1 -1
  60. package/esm2020/user-device-manage/src/services/dns.service.mjs +1 -1
  61. package/esm2020/user-device-manage/src/services/line.service.mjs +1 -1
  62. package/esm2020/user-device-manage/src/services/notification.service.mjs +1 -1
  63. package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  64. package/esm2020/user-device-manage/src/services/site-settings.service.mjs +1 -1
  65. package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +1 -1
  66. package/esm2020/user-device-manage/src/services/user.service.mjs +1 -1
  67. package/esm2020/user-device-manage/src/services/utils.service.mjs +1 -1
  68. package/esm2020/user-device-manage/src/services/validation.service.mjs +1 -1
  69. package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +1 -1
  70. package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +3 -3
  71. package/esm2020/user-manage/public-api.mjs +1 -1
  72. package/esm2020/user-manage/src/app.constants.mjs +1 -1
  73. package/esm2020/user-manage/src/classes/device.mjs +1 -1
  74. package/esm2020/user-manage/src/classes/line-association-interface.mjs +1 -1
  75. package/esm2020/user-manage/src/classes/line-association.mjs +1 -1
  76. package/esm2020/user-manage/src/classes/line-call-info-display.mjs +1 -1
  77. package/esm2020/user-manage/src/classes/line-directory.mjs +1 -1
  78. package/esm2020/user-manage/src/classes/line.mjs +1 -1
  79. package/esm2020/user-manage/src/classes/notification.mjs +1 -1
  80. package/esm2020/user-manage/src/classes/pagination.mjs +1 -1
  81. package/esm2020/user-manage/src/classes/recording-options.mjs +1 -1
  82. package/esm2020/user-manage/src/classes/simplified-user.mjs +1 -1
  83. package/esm2020/user-manage/src/classes/table-data.mjs +1 -1
  84. package/esm2020/user-manage/src/classes/translation-pattern.mjs +1 -1
  85. package/esm2020/user-manage/src/classes/user-list.mjs +1 -1
  86. package/esm2020/user-manage/src/common-functions.mjs +1 -1
  87. package/esm2020/user-manage/src/device-list/device-list.component.mjs +3 -3
  88. package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +3 -3
  89. package/esm2020/user-manage/src/environments/environment.mjs +1 -1
  90. package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +1 -1
  91. package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +3 -3
  92. package/esm2020/user-manage/src/material.module.mjs +1 -1
  93. package/esm2020/user-manage/src/notifications/notification.component.mjs +3 -3
  94. package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +1 -1
  95. package/esm2020/user-manage/src/services/api.service.mjs +1 -1
  96. package/esm2020/user-manage/src/services/dns.service.mjs +1 -1
  97. package/esm2020/user-manage/src/services/line.service.mjs +1 -1
  98. package/esm2020/user-manage/src/services/notification.service.mjs +1 -1
  99. package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +1 -1
  100. package/esm2020/user-manage/src/services/site-settings.service.mjs +1 -1
  101. package/esm2020/user-manage/src/services/sorting-utils.service.mjs +1 -1
  102. package/esm2020/user-manage/src/services/user.service.mjs +1 -1
  103. package/esm2020/user-manage/src/services/utils.service.mjs +1 -1
  104. package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +3 -3
  105. package/esm2020/user-manage/src/user-info/user-info.component.mjs +3 -3
  106. package/esm2020/user-manage/src/user-manage-widget.component.mjs +2 -2
  107. package/esm2020/user-manage/src/user-manage.module.mjs +1 -1
  108. package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +3 -3
  109. package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +3 -3
  110. package/esm2020/users-list/public-api.mjs +1 -1
  111. package/esm2020/users-list/src/app.constants.mjs +1 -1
  112. package/esm2020/users-list/src/classes/app-location.mjs +1 -1
  113. package/esm2020/users-list/src/classes/device.mjs +1 -1
  114. package/esm2020/users-list/src/classes/line.mjs +1 -1
  115. package/esm2020/users-list/src/classes/move-user.mjs +1 -1
  116. package/esm2020/users-list/src/classes/notification.mjs +1 -1
  117. package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
  118. package/esm2020/users-list/src/classes/table-data.mjs +1 -1
  119. package/esm2020/users-list/src/classes/user-list.mjs +1 -1
  120. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +3 -3
  121. package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +3 -3
  122. package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +3 -3
  123. package/esm2020/users-list/src/services/api-webex.service.mjs +1 -1
  124. package/esm2020/users-list/src/services/api.service.mjs +1 -1
  125. package/esm2020/users-list/src/services/dns.service.mjs +1 -1
  126. package/esm2020/users-list/src/services/events-communication.service.mjs +1 -1
  127. package/esm2020/users-list/src/services/notification.service.mjs +1 -1
  128. package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +1 -1
  129. package/esm2020/users-list/src/services/site-settings.service.mjs +1 -1
  130. package/esm2020/users-list/src/services/user.service.mjs +1 -1
  131. package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +3 -3
  132. package/esm2020/users-list/src/users-list.component.mjs +3 -3
  133. package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +3 -3
  134. package/esm2020/users-list/src/utils/common-functions.mjs +1 -1
  135. package/esm2020/users-list/src/utils/notifications/notification.component.mjs +3 -3
  136. package/esm2020/users-list/src/utils/utils.service.mjs +1 -1
  137. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  138. package/fesm2015/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  139. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  140. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  141. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +6 -6
  142. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  143. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
  144. package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  145. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +18 -18
  146. package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  147. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +14 -14
  148. package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  149. package/fesm2015/tuki-io-tuki-widgets.mjs +8 -8
  150. package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -1
  151. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs +2 -2
  152. package/fesm2020/tuki-io-tuki-widgets-contact-center.mjs.map +1 -1
  153. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +20 -20
  154. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  155. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +6 -6
  156. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  157. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +18 -18
  158. package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
  159. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +18 -18
  160. package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
  161. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +14 -14
  162. package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
  163. package/fesm2020/tuki-io-tuki-widgets.mjs +8 -8
  164. package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -1
  165. package/package.json +1 -1
@@ -30,9 +30,9 @@ export class NotificationsComponent {
30
30
  }
31
31
  }
32
32
  NotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationsComponent, deps: [{ token: i1.NotificationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
33
- NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NotificationsComponent, selector: "app-notification", ngImport: i0, template: "<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\r\n <div\r\n class=\"notification\"\r\n *ngFor=\"let notification of list\"\r\n [ngClass]=\"{\r\n error: notification.isError(),\r\n success: notification.isSuccess(),\r\n }\"\r\n >\r\n <div class=\"flex-box\">\r\n <div class=\"notification-icons-block\">\r\n <i\r\n *ngIf=\"notification.isError()\"\r\n class=\"fa fa-exclamation-triangle\"\r\n ></i>\r\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\r\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\r\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\r\n </div>\r\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\r\n {{ notification.message }}\r\n </div>\r\n <div *ngIf=\"isReadMore\" class=\"message-block\">\r\n {{ notification.message }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"read-more-error link clickable\"\r\n *ngIf=\"notification.message && notification.message.length > 93\"\r\n (click)=\"readMore()\"\r\n >\r\n {{ isReadMore ? \"Collapse\" : \"Read more\" }}\r\n </div>\r\n <button\r\n class=\"close\"\r\n mat-icon-button\r\n matTooltip=\"Close notification\"\r\n (click)=\"removeNotification(notification)\"\r\n >\r\n <img\r\n class=\"notification-icon-close\"\r\n src=\"assets/icons/close_icon_modal.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".notification-block{position:absolute;top:96px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:12px;width:360px;pointer-events:none}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 14px 12px;color:#333;border-radius:8px;border:1px solid #e5e1cd;background:#fcf8e3;box-shadow:0 10px 24px #091e4229;width:100%;position:relative;pointer-events:auto}.notification-block .notification .notification-icons-block{width:28px;min-width:28px;display:flex;justify-content:center;align-items:flex-start;padding-top:2px}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,sans-serif!important;word-break:break-word;line-height:1.4;flex:1}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#ffe9e9;border-color:#e16d6d}.notification-block .notification.success{background:#e3f4dc;border-color:#b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:6px;right:6px;width:28px;height:28px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{right:12px;left:12px;width:auto}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
33
+ NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NotificationsComponent, selector: "app-notification", ngImport: i0, template: "<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\n <div\n class=\"notification\"\n *ngFor=\"let notification of list\"\n [ngClass]=\"{\n error: notification.isError(),\n success: notification.isSuccess(),\n }\"\n >\n <div class=\"flex-box\">\n <div class=\"notification-icons-block\">\n <i\n *ngIf=\"notification.isError()\"\n class=\"fa fa-exclamation-triangle\"\n ></i>\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\n </div>\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n <div *ngIf=\"isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n </div>\n <div\n class=\"read-more-error link clickable\"\n *ngIf=\"notification.message && notification.message.length > 93\"\n (click)=\"readMore()\"\n >\n {{ isReadMore ? \"Collapse\" : \"Read more\" }}\n </div>\n <button\n class=\"close\"\n mat-icon-button\n matTooltip=\"Close notification\"\n (click)=\"removeNotification(notification)\"\n >\n <img\n class=\"notification-icon-close\"\n src=\"assets/icons/close_icon_modal.svg\"\n alt=\"\"\n />\n </button>\n </div>\n</div>\n", styles: [".notification-block{position:absolute;top:96px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:12px;width:360px;pointer-events:none}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 14px 12px;color:#333;border-radius:8px;border:1px solid #e5e1cd;background:#fcf8e3;box-shadow:0 10px 24px #091e4229;width:100%;position:relative;pointer-events:auto}.notification-block .notification .notification-icons-block{width:28px;min-width:28px;display:flex;justify-content:center;align-items:flex-start;padding-top:2px}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,sans-serif!important;word-break:break-word;line-height:1.4;flex:1}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#ffe9e9;border-color:#e16d6d}.notification-block .notification.success{background:#e3f4dc;border-color:#b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:6px;right:6px;width:28px;height:28px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{right:12px;left:12px;width:auto}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationsComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'app-notification', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\r\n <div\r\n class=\"notification\"\r\n *ngFor=\"let notification of list\"\r\n [ngClass]=\"{\r\n error: notification.isError(),\r\n success: notification.isSuccess(),\r\n }\"\r\n >\r\n <div class=\"flex-box\">\r\n <div class=\"notification-icons-block\">\r\n <i\r\n *ngIf=\"notification.isError()\"\r\n class=\"fa fa-exclamation-triangle\"\r\n ></i>\r\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\r\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\r\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\r\n </div>\r\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\r\n {{ notification.message }}\r\n </div>\r\n <div *ngIf=\"isReadMore\" class=\"message-block\">\r\n {{ notification.message }}\r\n </div>\r\n </div>\r\n <div\r\n class=\"read-more-error link clickable\"\r\n *ngIf=\"notification.message && notification.message.length > 93\"\r\n (click)=\"readMore()\"\r\n >\r\n {{ isReadMore ? \"Collapse\" : \"Read more\" }}\r\n </div>\r\n <button\r\n class=\"close\"\r\n mat-icon-button\r\n matTooltip=\"Close notification\"\r\n (click)=\"removeNotification(notification)\"\r\n >\r\n <img\r\n class=\"notification-icon-close\"\r\n src=\"assets/icons/close_icon_modal.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".notification-block{position:absolute;top:96px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:12px;width:360px;pointer-events:none}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 14px 12px;color:#333;border-radius:8px;border:1px solid #e5e1cd;background:#fcf8e3;box-shadow:0 10px 24px #091e4229;width:100%;position:relative;pointer-events:auto}.notification-block .notification .notification-icons-block{width:28px;min-width:28px;display:flex;justify-content:center;align-items:flex-start;padding-top:2px}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,sans-serif!important;word-break:break-word;line-height:1.4;flex:1}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#ffe9e9;border-color:#e16d6d}.notification-block .notification.success{background:#e3f4dc;border-color:#b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:6px;right:6px;width:28px;height:28px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{right:12px;left:12px;width:auto}}\n"] }]
36
+ args: [{ selector: 'app-notification', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\n <div\n class=\"notification\"\n *ngFor=\"let notification of list\"\n [ngClass]=\"{\n error: notification.isError(),\n success: notification.isSuccess(),\n }\"\n >\n <div class=\"flex-box\">\n <div class=\"notification-icons-block\">\n <i\n *ngIf=\"notification.isError()\"\n class=\"fa fa-exclamation-triangle\"\n ></i>\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\n </div>\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n <div *ngIf=\"isReadMore\" class=\"message-block\">\n {{ notification.message }}\n </div>\n </div>\n <div\n class=\"read-more-error link clickable\"\n *ngIf=\"notification.message && notification.message.length > 93\"\n (click)=\"readMore()\"\n >\n {{ isReadMore ? \"Collapse\" : \"Read more\" }}\n </div>\n <button\n class=\"close\"\n mat-icon-button\n matTooltip=\"Close notification\"\n (click)=\"removeNotification(notification)\"\n >\n <img\n class=\"notification-icon-close\"\n src=\"assets/icons/close_icon_modal.svg\"\n alt=\"\"\n />\n </button>\n </div>\n</div>\n", styles: [".notification-block{position:absolute;top:96px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:12px;width:360px;pointer-events:none}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{display:flex;align-items:flex-start;gap:12px;padding:14px 16px 14px 12px;color:#333;border-radius:8px;border:1px solid #e5e1cd;background:#fcf8e3;box-shadow:0 10px 24px #091e4229;width:100%;position:relative;pointer-events:auto}.notification-block .notification .notification-icons-block{width:28px;min-width:28px;display:flex;justify-content:center;align-items:flex-start;padding-top:2px}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,sans-serif!important;word-break:break-word;line-height:1.4;flex:1}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#ffe9e9;border-color:#e16d6d}.notification-block .notification.success{background:#e3f4dc;border-color:#b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:6px;right:6px;width:28px;height:28px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{right:12px;left:12px;width:auto}}\n"] }]
37
37
  }], ctorParameters: function () { return [{ type: i1.NotificationService }, { type: i0.ChangeDetectorRef }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy91dGlscy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvdXRpbHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXekcsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNTLG1CQUF3QyxFQUN2QyxHQUFzQjtRQUR2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3ZDLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBRWhDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsWUFBMEI7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVTthQUN4RCxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7b0hBakNVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHdEQ1huQywyakRBK0NBOzRGRHBDYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL2NsYXNzZXMvbm90aWZpY2F0aW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLW5vdGlmaWNhdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGxpc3QhOiBOb3RpZmljYXRpb25bXTtcclxuICBwdWJsaWMgaXNSZWFkTW9yZSE6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBsaXN0U3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubGlzdENoYW5nZVN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxpc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWFkTW9yZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNSZWFkTW9yZSA9ICF0aGlzLmlzUmVhZE1vcmU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKTogdm9pZCB7XHJcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UucmVtb3ZlKG5vdGlmaWNhdGlvbik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxpc3RDaGFuZ2VTdWJzY3JpYmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxpc3RTdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubGlzdENoYW5nZVxyXG4gICAgICAuc3Vic2NyaWJlKChsaXN0OiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3QgPSBsaXN0O1xyXG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24tYmxvY2tcIiByb2xlPVwiYWxlcnRcIiBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cIm5vdGlmaWNhdGlvblwiXHJcbiAgICAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIGxpc3RcIlxyXG4gICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICBlcnJvcjogbm90aWZpY2F0aW9uLmlzRXJyb3IoKSxcclxuICAgICAgc3VjY2Vzczogbm90aWZpY2F0aW9uLmlzU3VjY2VzcygpLFxyXG4gICAgfVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtYm94XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJub3RpZmljYXRpb24taWNvbnMtYmxvY2tcIj5cclxuICAgICAgICA8aVxyXG4gICAgICAgICAgKm5nSWY9XCJub3RpZmljYXRpb24uaXNFcnJvcigpXCJcclxuICAgICAgICAgIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tdHJpYW5nbGVcIlxyXG4gICAgICAgID48L2k+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJub3RpZmljYXRpb24uaXNXYXJuaW5nKClcIiBjbGFzcz1cImZhIGZhLWhhbmQtcGFwZXItb1wiPjwvaT5cclxuICAgICAgICA8aSAqbmdJZj1cIm5vdGlmaWNhdGlvbi5pc1N1Y2Nlc3MoKVwiIGNsYXNzPVwiZmEgZmEtY2hlY2tcIj48L2k+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJub3RpZmljYXRpb24uaXNJbmZvKClcIiBjbGFzcz1cImZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFpc1JlYWRNb3JlXCIgY2xhc3M9XCJtZXNzYWdlLWJsb2NrXCI+XHJcbiAgICAgICAge3sgbm90aWZpY2F0aW9uLm1lc3NhZ2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJpc1JlYWRNb3JlXCIgY2xhc3M9XCJtZXNzYWdlLWJsb2NrXCI+XHJcbiAgICAgICAge3sgbm90aWZpY2F0aW9uLm1lc3NhZ2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJyZWFkLW1vcmUtZXJyb3IgbGluayBjbGlja2FibGVcIlxyXG4gICAgICAqbmdJZj1cIm5vdGlmaWNhdGlvbi5tZXNzYWdlICYmIG5vdGlmaWNhdGlvbi5tZXNzYWdlLmxlbmd0aCA+IDkzXCJcclxuICAgICAgKGNsaWNrKT1cInJlYWRNb3JlKClcIlxyXG4gICAgPlxyXG4gICAgICB7eyBpc1JlYWRNb3JlID8gXCJDb2xsYXBzZVwiIDogXCJSZWFkIG1vcmVcIiB9fVxyXG4gICAgPC9kaXY+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIGNsYXNzPVwiY2xvc2VcIlxyXG4gICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgbWF0VG9vbHRpcD1cIkNsb3NlIG5vdGlmaWNhdGlvblwiXHJcbiAgICAgIChjbGljayk9XCJyZW1vdmVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKVwiXHJcbiAgICA+XHJcbiAgICAgIDxpbWdcclxuICAgICAgICBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uLWNsb3NlXCJcclxuICAgICAgICBzcmM9XCJhc3NldHMvaWNvbnMvY2xvc2VfaWNvbl9tb2RhbC5zdmdcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy91dGlscy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlcnMtbGlzdC9zcmMvdXRpbHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFXekcsTUFBTSxPQUFPLHNCQUFzQjtJQUtqQyxZQUNTLG1CQUF3QyxFQUN2QyxHQUFzQjtRQUR2Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3ZDLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBRWhDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsWUFBMEI7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVTthQUN4RCxTQUFTLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7b0hBakNVLHNCQUFzQjt3R0FBdEIsc0JBQXNCLHdEQ1huQyw2OUNBK0NBOzRGRHBDYSxzQkFBc0I7a0JBTmxDLFNBQVM7K0JBQ0Usa0JBQWtCLG1CQUdYLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbiB9IGZyb20gJy4uLy4uL2NsYXNzZXMvbm90aWZpY2F0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW5vdGlmaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIGxpc3QhOiBOb3RpZmljYXRpb25bXTtcbiAgcHVibGljIGlzUmVhZE1vcmUhOiBib29sZWFuO1xuICBwcml2YXRlIGxpc3RTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0Q2hhbmdlU3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmxpc3RTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkTW9yZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzUmVhZE1vcmUgPSAhdGhpcy5pc1JlYWRNb3JlO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb246IE5vdGlmaWNhdGlvbik6IHZvaWQge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5yZW1vdmUobm90aWZpY2F0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdENoYW5nZVN1YnNjcmliZSgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3RTdWJzY3JpcHRpb24gPSB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UubGlzdENoYW5nZVxuICAgICAgLnN1YnNjcmliZSgobGlzdDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubGlzdCA9IGxpc3Q7XG4gICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWJsb2NrXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm5vdGlmaWNhdGlvblwiXG4gICAgKm5nRm9yPVwibGV0IG5vdGlmaWNhdGlvbiBvZiBsaXN0XCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICBlcnJvcjogbm90aWZpY2F0aW9uLmlzRXJyb3IoKSxcbiAgICAgIHN1Y2Nlc3M6IG5vdGlmaWNhdGlvbi5pc1N1Y2Nlc3MoKSxcbiAgICB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWJveFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29ucy1ibG9ja1wiPlxuICAgICAgICA8aVxuICAgICAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9uLmlzRXJyb3IoKVwiXG4gICAgICAgICAgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiXG4gICAgICAgID48L2k+XG4gICAgICAgIDxpICpuZ0lmPVwibm90aWZpY2F0aW9uLmlzV2FybmluZygpXCIgY2xhc3M9XCJmYSBmYS1oYW5kLXBhcGVyLW9cIj48L2k+XG4gICAgICAgIDxpICpuZ0lmPVwibm90aWZpY2F0aW9uLmlzU3VjY2VzcygpXCIgY2xhc3M9XCJmYSBmYS1jaGVja1wiPjwvaT5cbiAgICAgICAgPGkgKm5nSWY9XCJub3RpZmljYXRpb24uaXNJbmZvKClcIiBjbGFzcz1cImZhIGZhLWluZm8tY2lyY2xlXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWlzUmVhZE1vcmVcIiBjbGFzcz1cIm1lc3NhZ2UtYmxvY2tcIj5cbiAgICAgICAge3sgbm90aWZpY2F0aW9uLm1lc3NhZ2UgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImlzUmVhZE1vcmVcIiBjbGFzcz1cIm1lc3NhZ2UtYmxvY2tcIj5cbiAgICAgICAge3sgbm90aWZpY2F0aW9uLm1lc3NhZ2UgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwicmVhZC1tb3JlLWVycm9yIGxpbmsgY2xpY2thYmxlXCJcbiAgICAgICpuZ0lmPVwibm90aWZpY2F0aW9uLm1lc3NhZ2UgJiYgbm90aWZpY2F0aW9uLm1lc3NhZ2UubGVuZ3RoID4gOTNcIlxuICAgICAgKGNsaWNrKT1cInJlYWRNb3JlKClcIlxuICAgID5cbiAgICAgIHt7IGlzUmVhZE1vcmUgPyBcIkNvbGxhcHNlXCIgOiBcIlJlYWQgbW9yZVwiIH19XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJjbG9zZVwiXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIG1hdFRvb2x0aXA9XCJDbG9zZSBub3RpZmljYXRpb25cIlxuICAgICAgKGNsaWNrKT1cInJlbW92ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pXCJcbiAgICA+XG4gICAgICA8aW1nXG4gICAgICAgIGNsYXNzPVwibm90aWZpY2F0aW9uLWljb24tY2xvc2VcIlxuICAgICAgICBzcmM9XCJhc3NldHMvaWNvbnMvY2xvc2VfaWNvbl9tb2RhbC5zdmdcIlxuICAgICAgICBhbHQ9XCJcIlxuICAgICAgLz5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -70,4 +70,4 @@ UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService, decorators: [{
71
71
  type: Injectable
72
72
  }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy91dGlscy91dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxZQUFZO0lBRXZCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFTLEVBQUUsTUFBYztRQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM1QixPQUFPLENBQUMsQ0FBQzthQUNWO1lBQ0QsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7WUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNYO1lBQ0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBZSxFQUFFLFVBQWUsRUFBRSxJQUFZLEVBQUUsWUFBdUI7UUFDakYsSUFBSSxNQUFNLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDckMsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFDRCxJQUFJLENBQUMsVUFBVSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUNqRCxPQUFPLFVBQVUsQ0FBQztTQUNuQjtRQUNELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekcsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN6RixNQUFNO2FBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLElBQUksT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUM5RSxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO29CQUMxRCxNQUFNLE9BQU8sR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO29CQUNsRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUMxRixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7d0JBQ3hCLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7cUJBQ2pDO2lCQUNGO2FBQ0Y7aUJBQU0sSUFBSSxVQUFVLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUMzSCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDOUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ3pEO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFVO1FBQzdCLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELFFBQVEsT0FBTyxLQUFLLEVBQUU7WUFDcEIsS0FBSyxTQUFTO2dCQUNaLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxRQUFRO2dCQUNYLE9BQU8sRUFBRSxDQUFDO1lBQ1o7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVMsRUFBRSxJQUFTO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzBHQWxFVSxZQUFZOzhHQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFV0aWxzU2VydmljZSB7XHJcblxyXG4gIHN0YXRpYyBzb3J0U29ydEFycmF5QnlQcm9wZXJ0eShhcnJheTogW10sIHNvcnRCeTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIWFycmF5KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFycmF5LnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgaWYgKCFhW3NvcnRCeV0gJiYgIWJbc29ydEJ5XSkge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChhW3NvcnRCeV0gJiYgIWJbc29ydEJ5XSkge1xyXG4gICAgICAgIHJldHVybiAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghYVtzb3J0QnldICYmIGJbc29ydEJ5XSkge1xyXG4gICAgICAgIHJldHVybiAtMTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBwb3NpdGlvbkEgPSBhW3NvcnRCeV07XHJcbiAgICAgIGNvbnN0IHBvc2l0aW9uQiA9IGJbc29ydEJ5XTtcclxuICAgICAgcmV0dXJuIChwb3NpdGlvbkEgPCBwb3NpdGlvbkIpID8gLTEgOiAocG9zaXRpb25BID4gcG9zaXRpb25CKSA/IDEgOiAwO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZGlmZihvcmlnT2JqZWN0OiBhbnksIHVwZGF0ZWRPYmo6IGFueSwgcGF0aDogc3RyaW5nLCBrZXlzVG9JZ25vcmU/OiBzdHJpbmdbXSkge1xyXG4gICAgbGV0IHJlc3VsdDogYW55ID0gW107XHJcbiAgICBpZiAoT2JqZWN0LmlzKG9yaWdPYmplY3QsIHVwZGF0ZWRPYmopKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBpZiAoIXVwZGF0ZWRPYmogfHwgdHlwZW9mIHVwZGF0ZWRPYmogIT09ICdvYmplY3QnKSB7XHJcbiAgICAgIHJldHVybiB1cGRhdGVkT2JqO1xyXG4gICAgfVxyXG4gICAgY29uc3QgY29uY2F0ID0gQXJyYXkuZnJvbShuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhvcmlnT2JqZWN0IHx8IHt9KSwgLi4uT2JqZWN0LmtleXModXBkYXRlZE9iaiB8fCB7fSldKSk7XHJcbiAgICBjb25zdCBmaWx0ZXIgPSBrZXlzVG9JZ25vcmUgPyBjb25jYXQuZmlsdGVyKGtleSA9PiAha2V5c1RvSWdub3JlLmluY2x1ZGVzKGtleSkpIDogY29uY2F0O1xyXG4gICAgZmlsdGVyXHJcbiAgICAgIC5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB1cGRhdGVkT2JqW2tleV0gPT09ICdvYmplY3QnICYmIHR5cGVvZiBvcmlnT2JqZWN0W2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBpZiAoVXRpbHNTZXJ2aWNlLmRpZmZlcnModXBkYXRlZE9ialtrZXldLCBvcmlnT2JqZWN0W2tleV0pKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBgJHtwYXRofSR7cGF0aCA/ICcuJyA6ICcnfSR7a2V5fWA7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IFV0aWxzU2VydmljZS5kaWZmKG9yaWdPYmplY3Rba2V5XSwgdXBkYXRlZE9ialtrZXldLCBuZXdQYXRoLCBrZXlzVG9JZ25vcmUpO1xyXG4gICAgICAgICAgICBpZiAodmFsdWVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCAuLi52YWx1ZXNdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh1cGRhdGVkT2JqICYmICFvcmlnT2JqZWN0IHx8IHVwZGF0ZWRPYmpba2V5XSAhPT0gb3JpZ09iamVjdFtrZXldICYmICFPYmplY3QuaXMob3JpZ09iamVjdFtrZXldLCB1cGRhdGVkT2JqW2tleV0pKSB7XHJcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHVwZGF0ZWRPYmogPyBVdGlsc1NlcnZpY2UuZm9ybWF0SWZFbXB0eSh1cGRhdGVkT2JqW2tleV0pIDogbnVsbDtcclxuICAgICAgICAgIHJlc3VsdC5wdXNoKGAke3BhdGh9JHtwYXRoID8gJy4nIDogJyd9JHtrZXl9PSR7dmFsdWV9YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9ybWF0SWZFbXB0eSh2YWx1ZTogYW55KSB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcclxuICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICAgIHJldHVybiAnJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXRpYyBkaWZmZXJzKG9iajE6IGFueSwgb2JqMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqMSkgIT09IEpTT04uc3RyaW5naWZ5KG9iajIpO1xyXG4gIH1cclxufVxyXG4iXX0=
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2Vycy1saXN0L3NyYy91dGlscy91dGlscy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxZQUFZO0lBRXZCLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxLQUFTLEVBQUUsTUFBYztRQUN0RCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QixJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUM1QixPQUFPLENBQUMsQ0FBQzthQUNWO1lBQ0QsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNCLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7WUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUNYO1lBQ0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QixPQUFPLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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Q0UsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLElBQVMsRUFBRSxJQUFTO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OzBHQWxFVSxZQUFZOzhHQUFaLFlBQVk7NEZBQVosWUFBWTtrQkFEeEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFV0aWxzU2VydmljZSB7XG5cbiAgc3RhdGljIHNvcnRTb3J0QXJyYXlCeVByb3BlcnR5KGFycmF5OiBbXSwgc29ydEJ5OiBzdHJpbmcpIHtcbiAgICBpZiAoIWFycmF5KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5LnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmICghYVtzb3J0QnldICYmICFiW3NvcnRCeV0pIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9XG4gICAgICBpZiAoYVtzb3J0QnldICYmICFiW3NvcnRCeV0pIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9XG4gICAgICBpZiAoIWFbc29ydEJ5XSAmJiBiW3NvcnRCeV0pIHtcbiAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgfVxuICAgICAgY29uc3QgcG9zaXRpb25BID0gYVtzb3J0QnldO1xuICAgICAgY29uc3QgcG9zaXRpb25CID0gYltzb3J0QnldO1xuICAgICAgcmV0dXJuIChwb3NpdGlvbkEgPCBwb3NpdGlvbkIpID8gLTEgOiAocG9zaXRpb25BID4gcG9zaXRpb25CKSA/IDEgOiAwO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGRpZmYob3JpZ09iamVjdDogYW55LCB1cGRhdGVkT2JqOiBhbnksIHBhdGg6IHN0cmluZywga2V5c1RvSWdub3JlPzogc3RyaW5nW10pIHtcbiAgICBsZXQgcmVzdWx0OiBhbnkgPSBbXTtcbiAgICBpZiAoT2JqZWN0LmlzKG9yaWdPYmplY3QsIHVwZGF0ZWRPYmopKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAoIXVwZGF0ZWRPYmogfHwgdHlwZW9mIHVwZGF0ZWRPYmogIT09ICdvYmplY3QnKSB7XG4gICAgICByZXR1cm4gdXBkYXRlZE9iajtcbiAgICB9XG4gICAgY29uc3QgY29uY2F0ID0gQXJyYXkuZnJvbShuZXcgU2V0KFsuLi5PYmplY3Qua2V5cyhvcmlnT2JqZWN0IHx8IHt9KSwgLi4uT2JqZWN0LmtleXModXBkYXRlZE9iaiB8fCB7fSldKSk7XG4gICAgY29uc3QgZmlsdGVyID0ga2V5c1RvSWdub3JlID8gY29uY2F0LmZpbHRlcihrZXkgPT4gIWtleXNUb0lnbm9yZS5pbmNsdWRlcyhrZXkpKSA6IGNvbmNhdDtcbiAgICBmaWx0ZXJcbiAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2YgdXBkYXRlZE9ialtrZXldID09PSAnb2JqZWN0JyAmJiB0eXBlb2Ygb3JpZ09iamVjdFtrZXldID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIGlmIChVdGlsc1NlcnZpY2UuZGlmZmVycyh1cGRhdGVkT2JqW2tleV0sIG9yaWdPYmplY3Rba2V5XSkpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1BhdGggPSBgJHtwYXRofSR7cGF0aCA/ICcuJyA6ICcnfSR7a2V5fWA7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSBVdGlsc1NlcnZpY2UuZGlmZihvcmlnT2JqZWN0W2tleV0sIHVwZGF0ZWRPYmpba2V5XSwgbmV3UGF0aCwga2V5c1RvSWdub3JlKTtcbiAgICAgICAgICAgIGlmICh2YWx1ZXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICByZXN1bHQgPSBbLi4ucmVzdWx0LCAuLi52YWx1ZXNdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh1cGRhdGVkT2JqICYmICFvcmlnT2JqZWN0IHx8IHVwZGF0ZWRPYmpba2V5XSAhPT0gb3JpZ09iamVjdFtrZXldICYmICFPYmplY3QuaXMob3JpZ09iamVjdFtrZXldLCB1cGRhdGVkT2JqW2tleV0pKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSB1cGRhdGVkT2JqID8gVXRpbHNTZXJ2aWNlLmZvcm1hdElmRW1wdHkodXBkYXRlZE9ialtrZXldKSA6IG51bGw7XG4gICAgICAgICAgcmVzdWx0LnB1c2goYCR7cGF0aH0ke3BhdGggPyAnLicgOiAnJ30ke2tleX09JHt2YWx1ZX1gKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN0YXRpYyBmb3JtYXRJZkVtcHR5KHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gICAgc3dpdGNoICh0eXBlb2YgdmFsdWUpIHtcbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgZGlmZmVycyhvYmoxOiBhbnksIG9iajI6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmoxKSAhPT0gSlNPTi5zdHJpbmdpZnkob2JqMik7XG4gIH1cbn1cbiJdfQ==
@@ -342,10 +342,10 @@ class LicencesRequirementComponent {
342
342
  }
343
343
  }
344
344
  LicencesRequirementComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LicencesRequirementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
345
- LicencesRequirementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LicencesRequirementComponent, selector: "cc-licenses-requirement", inputs: { customerId: "customerId", host: "host", token: "token" }, usesOnChanges: true, ngImport: i0, template: "<tk-card title=\"Licenses requirement\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div\r\n class=\"widget-body\"\r\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\r\n >\r\n <div class=\"left-section\">\r\n <mat-select\r\n [(value)]=\"selectedSummaryIndex\"\r\n (selectionChange)=\"onFilterChange($event.value)\"\r\n class=\"filter-select\"\r\n >\r\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\r\n {{ option }}\r\n </mat-option>\r\n </mat-select>\r\n\r\n <div class=\"chart-section\">\r\n <div class=\"chart-wrapper\">\r\n <apx-chart\r\n [series]=\"viewModel.chartOptions.series\"\r\n [chart]=\"viewModel.chartOptions.chart\"\r\n [labels]=\"viewModel.chartOptions.labels\"\r\n [colors]=\"viewModel.chartOptions.colors\"\r\n [legend]=\"viewModel.chartOptions.legend\"\r\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\r\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\r\n [tooltip]=\"viewModel.chartOptions.tooltip\"\r\n >\r\n </apx-chart>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\r\n <span\r\n class=\"legend-marker\"\r\n [style.backgroundColor]=\"item.color\"\r\n ></span>\r\n <span class=\"legend-label\">{{ item.label }}</span>\r\n <span class=\"legend-value\">{{ item.count | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"divider\" aria-hidden=\"true\"></div>\r\n\r\n <div class=\"table-section\">\r\n <div class=\"lic-table-header\">\r\n <span>License</span>\r\n <span>Required</span>\r\n </div>\r\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\r\n <span>{{ row.label }}</span>\r\n <span>{{ row.value | number }}</span>\r\n </div>\r\n <div class=\"table-row total-row\">\r\n <span>Total</span>\r\n <span>{{ viewModel.totalRequired | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #widgetState>\r\n <div class=\"state-message\" *ngIf=\"loading\">\r\n Loading license requirements\u2026\r\n </div>\r\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\r\n Unable to load license requirements.\r\n </div>\r\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\r\n No license data available.\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</tk-card>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ChartComponent, selector: "apx-chart", inputs: ["chart", "annotations", "colors", "dataLabels", "series", "stroke", "labels", "legend", "markers", "noData", "fill", "tooltip", "plotOptions", "responsive", "xaxis", "yaxis", "forecastDataPoints", "grid", "states", "title", "subtitle", "theme", "autoUpdateSeries"] }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: CardComponent, selector: "tk-card", inputs: ["title"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }] });
345
+ LicencesRequirementComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: LicencesRequirementComponent, selector: "cc-licenses-requirement", inputs: { customerId: "customerId", host: "host", token: "token" }, usesOnChanges: true, ngImport: i0, template: "<tk-card title=\"Licenses requirement\">\n <ng-container ngProjectAs=\"card-content\">\n <div\n class=\"widget-body\"\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\n >\n <div class=\"left-section\">\n <mat-select\n [(value)]=\"selectedSummaryIndex\"\n (selectionChange)=\"onFilterChange($event.value)\"\n class=\"filter-select\"\n >\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\n {{ option }}\n </mat-option>\n </mat-select>\n\n <div class=\"chart-section\">\n <div class=\"chart-wrapper\">\n <apx-chart\n [series]=\"viewModel.chartOptions.series\"\n [chart]=\"viewModel.chartOptions.chart\"\n [labels]=\"viewModel.chartOptions.labels\"\n [colors]=\"viewModel.chartOptions.colors\"\n [legend]=\"viewModel.chartOptions.legend\"\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\n [tooltip]=\"viewModel.chartOptions.tooltip\"\n >\n </apx-chart>\n </div>\n <div class=\"legend\">\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\n <span\n class=\"legend-marker\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"legend-label\">{{ item.label }}</span>\n <span class=\"legend-value\">{{ item.count | number }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"divider\" aria-hidden=\"true\"></div>\n\n <div class=\"table-section\">\n <div class=\"lic-table-header\">\n <span>License</span>\n <span>Required</span>\n </div>\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\n <span>{{ row.label }}</span>\n <span>{{ row.value | number }}</span>\n </div>\n <div class=\"table-row total-row\">\n <span>Total</span>\n <span>{{ viewModel.totalRequired | number }}</span>\n </div>\n </div>\n </div>\n\n <ng-template #widgetState>\n <div class=\"state-message\" *ngIf=\"loading\">\n Loading license requirements\u2026\n </div>\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\n Unable to load license requirements.\n </div>\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\n No license data available.\n </div>\n </ng-template>\n </ng-container>\n</tk-card>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ChartComponent, selector: "apx-chart", inputs: ["chart", "annotations", "colors", "dataLabels", "series", "stroke", "labels", "legend", "markers", "noData", "fill", "tooltip", "plotOptions", "responsive", "xaxis", "yaxis", "forecastDataPoints", "grid", "states", "title", "subtitle", "theme", "autoUpdateSeries"] }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: CardComponent, selector: "tk-card", inputs: ["title"] }, { kind: "pipe", type: i1$1.DecimalPipe, name: "number" }] });
346
346
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: LicencesRequirementComponent, decorators: [{
347
347
  type: Component,
348
- args: [{ selector: 'cc-licenses-requirement', template: "<tk-card title=\"Licenses requirement\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div\r\n class=\"widget-body\"\r\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\r\n >\r\n <div class=\"left-section\">\r\n <mat-select\r\n [(value)]=\"selectedSummaryIndex\"\r\n (selectionChange)=\"onFilterChange($event.value)\"\r\n class=\"filter-select\"\r\n >\r\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\r\n {{ option }}\r\n </mat-option>\r\n </mat-select>\r\n\r\n <div class=\"chart-section\">\r\n <div class=\"chart-wrapper\">\r\n <apx-chart\r\n [series]=\"viewModel.chartOptions.series\"\r\n [chart]=\"viewModel.chartOptions.chart\"\r\n [labels]=\"viewModel.chartOptions.labels\"\r\n [colors]=\"viewModel.chartOptions.colors\"\r\n [legend]=\"viewModel.chartOptions.legend\"\r\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\r\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\r\n [tooltip]=\"viewModel.chartOptions.tooltip\"\r\n >\r\n </apx-chart>\r\n </div>\r\n <div class=\"legend\">\r\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\r\n <span\r\n class=\"legend-marker\"\r\n [style.backgroundColor]=\"item.color\"\r\n ></span>\r\n <span class=\"legend-label\">{{ item.label }}</span>\r\n <span class=\"legend-value\">{{ item.count | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"divider\" aria-hidden=\"true\"></div>\r\n\r\n <div class=\"table-section\">\r\n <div class=\"lic-table-header\">\r\n <span>License</span>\r\n <span>Required</span>\r\n </div>\r\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\r\n <span>{{ row.label }}</span>\r\n <span>{{ row.value | number }}</span>\r\n </div>\r\n <div class=\"table-row total-row\">\r\n <span>Total</span>\r\n <span>{{ viewModel.totalRequired | number }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-template #widgetState>\r\n <div class=\"state-message\" *ngIf=\"loading\">\r\n Loading license requirements\u2026\r\n </div>\r\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\r\n Unable to load license requirements.\r\n </div>\r\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\r\n No license data available.\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</tk-card>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"] }]
348
+ args: [{ selector: 'cc-licenses-requirement', template: "<tk-card title=\"Licenses requirement\">\n <ng-container ngProjectAs=\"card-content\">\n <div\n class=\"widget-body\"\n *ngIf=\"!loading && !error && viewModel; else widgetState\"\n >\n <div class=\"left-section\">\n <mat-select\n [(value)]=\"selectedSummaryIndex\"\n (selectionChange)=\"onFilterChange($event.value)\"\n class=\"filter-select\"\n >\n <mat-option *ngFor=\"let option of filters; index as i\" [value]=\"i\">\n {{ option }}\n </mat-option>\n </mat-select>\n\n <div class=\"chart-section\">\n <div class=\"chart-wrapper\">\n <apx-chart\n [series]=\"viewModel.chartOptions.series\"\n [chart]=\"viewModel.chartOptions.chart\"\n [labels]=\"viewModel.chartOptions.labels\"\n [colors]=\"viewModel.chartOptions.colors\"\n [legend]=\"viewModel.chartOptions.legend\"\n [plotOptions]=\"viewModel.chartOptions.plotOptions\"\n [dataLabels]=\"viewModel.chartOptions.dataLabels\"\n [tooltip]=\"viewModel.chartOptions.tooltip\"\n >\n </apx-chart>\n </div>\n <div class=\"legend\">\n <div class=\"legend-item\" *ngFor=\"let item of viewModel.legendItems\">\n <span\n class=\"legend-marker\"\n [style.backgroundColor]=\"item.color\"\n ></span>\n <span class=\"legend-label\">{{ item.label }}</span>\n <span class=\"legend-value\">{{ item.count | number }}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"divider\" aria-hidden=\"true\"></div>\n\n <div class=\"table-section\">\n <div class=\"lic-table-header\">\n <span>License</span>\n <span>Required</span>\n </div>\n <div class=\"table-row\" *ngFor=\"let row of viewModel.rows\">\n <span>{{ row.label }}</span>\n <span>{{ row.value | number }}</span>\n </div>\n <div class=\"table-row total-row\">\n <span>Total</span>\n <span>{{ viewModel.totalRequired | number }}</span>\n </div>\n </div>\n </div>\n\n <ng-template #widgetState>\n <div class=\"state-message\" *ngIf=\"loading\">\n Loading license requirements\u2026\n </div>\n <div class=\"state-message error\" *ngIf=\"!loading && error\">\n Unable to load license requirements.\n </div>\n <div class=\"state-message\" *ngIf=\"!loading && !error && !viewModel\">\n No license data available.\n </div>\n </ng-template>\n </ng-container>\n</tk-card>\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;width:100%;box-sizing:border-box}.filter-select{font-family:Inter,Inter,sans-serif;font-size:14px;min-width:140px;border:1px solid #e5e7eb;border-radius:.5rem;padding:.5rem .75rem;background-color:#fff}.filter-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select{border:1px solid #e5e7eb;border-radius:.5rem;background-color:#fff}:host ::ng-deep .filter-select.mat-mdc-select:hover{border-color:#d1d5db}:host ::ng-deep .filter-select.mat-mdc-select.mat-focused{border-color:#16a693}:host ::ng-deep .filter-select .mat-mdc-select-trigger{font-size:14px;padding:.5rem .75rem}:host ::ng-deep .filter-select .mat-mdc-select-value{color:#111827}:host ::ng-deep .filter-select .mat-mdc-select-arrow-wrapper{padding-left:.5rem}.widget-body{display:flex;gap:2.5rem;align-items:flex-start}.left-section{flex:2;display:flex;flex-direction:column;gap:1rem}.chart-section{display:flex;gap:1.5rem;align-items:center}.chart-wrapper{width:220px;min-height:220px;flex-shrink:0}.chart-wrapper apx-chart{width:220px!important;height:220px!important}.legend{display:flex;flex-direction:column;gap:.75rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-family:Inter,Inter,sans-serif;font-size:14px}.legend-marker{width:14px;height:14px;border-radius:50%;display:inline-flex}.legend-label{color:#4b5563}.legend-value{margin-left:auto;font-weight:600;color:#111827}.divider{width:1px;min-height:200px;align-self:stretch;background:#e5e7eb}.table-section{flex:3;display:flex;flex-direction:column;gap:.75rem;font-family:Inter,Inter,sans-serif}.lic-table-header,.table-row{display:flex;justify-content:space-between;font-size:14px}.lic-table-header{font-weight:600;color:#6b7280;padding-bottom:.5rem;border-bottom:1px solid #e5e7eb}.table-row{color:#111827}.total-row{font-weight:700;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e5e7eb}.state-message{font-family:Inter,Inter,sans-serif;font-size:14px;color:#6b7280}.state-message.error{color:#b91c1c}@media (max-width: 960px){.widget-body{flex-direction:column}.divider{display:none}.chart-section{justify-content:space-between}}:host ::ng-deep .apexcharts-legend{display:none!important}\n"] }]
349
349
  }], propDecorators: { customerId: [{
350
350
  type: Input
351
351
  }], host: [{