@tuki-io/tuki-widgets 0.0.72 → 0.0.73
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.
- package/di2mt/api/api.endpoints.d.ts +20 -0
- package/di2mt/index.d.ts +5 -0
- package/di2mt/{public-api.ts → public-api.d.ts} +12 -26
- package/di2mt/shared/components/card/card.component.d.ts +6 -0
- package/di2mt/shared/components/chart-card/chart-card.component.d.ts +22 -0
- package/di2mt/shared/components/stat-card/stat-card.component.d.ts +14 -0
- package/di2mt/shared/components/status-list-card/status-list-card.component.d.ts +7 -0
- package/di2mt/shared/components/summary-card/summary-card.component.d.ts +9 -0
- package/di2mt/shared/components/table-filters/table-filters.component.d.ts +14 -0
- package/di2mt/shared/material.module.d.ts +15 -0
- package/di2mt/shared/services/api.service.d.ts +20 -0
- package/di2mt/shared/shared.module.d.ts +16 -0
- package/di2mt/shared/types/constants.d.ts +7 -0
- package/di2mt/shared/types/data-table.d.ts +5 -0
- package/di2mt/shared/types/table/filter.d.ts +16 -0
- package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.d.ts +48 -0
- package/di2mt/widgets/site-upgrade/site-upgrade.module.d.ts +12 -0
- package/di2mt/widgets/site-upgrade/site-upgrade.service.d.ts +12 -0
- package/di2mt/widgets/site-upgrade/types/{user-upgrade.ts → user-upgrade.d.ts} +14 -15
- package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.d.ts +19 -0
- package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.d.ts +19 -0
- package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.d.ts +18 -0
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.d.ts +19 -0
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.d.ts +19 -0
- package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.d.ts +15 -0
- package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.d.ts +18 -0
- package/di2mt/widgets/upgrade-overview/types/{upgrade-overview.ts → upgrade-overview.d.ts} +56 -58
- package/di2mt/widgets/upgrade-overview/upgrade-overview.module.d.ts +15 -0
- package/di2mt/widgets/upgrade-overview/upgrade-overview.service.d.ts +17 -0
- package/di2mt/widgets/user-upgrade/types/{user-upgrade.ts → user-upgrade.d.ts} +16 -18
- package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.d.ts +49 -0
- package/di2mt/widgets/user-upgrade/user-upgrade.module.d.ts +12 -0
- package/di2mt/widgets/user-upgrade/user-upgrade.service.d.ts +14 -0
- package/esm2020/di2mt/api/api.endpoints.mjs +21 -0
- package/esm2020/di2mt/public-api.mjs +23 -0
- package/esm2020/di2mt/shared/components/card/card.component.mjs +13 -0
- package/esm2020/di2mt/shared/components/chart-card/chart-card.component.mjs +62 -0
- package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +47 -0
- package/esm2020/di2mt/shared/components/status-list-card/status-list-card.component.mjs +17 -0
- package/esm2020/di2mt/shared/components/summary-card/summary-card.component.mjs +36 -0
- package/esm2020/di2mt/shared/components/table-filters/table-filters.component.mjs +37 -0
- package/esm2020/di2mt/shared/material.module.mjs +76 -0
- package/esm2020/di2mt/shared/services/api.service.mjs +86 -0
- package/esm2020/di2mt/shared/shared.module.mjs +61 -0
- package/esm2020/di2mt/shared/types/constants.mjs +12 -0
- package/esm2020/di2mt/shared/types/data-table.mjs +2 -0
- package/esm2020/di2mt/shared/types/table/filter.mjs +2 -0
- package/esm2020/di2mt/tuki-io-tuki-widgets-di2mt.mjs +5 -0
- package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +182 -0
- package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.module.mjs +40 -0
- package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +43 -0
- package/esm2020/di2mt/widgets/site-upgrade/types/user-upgrade.mjs +3 -0
- package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.mjs +64 -0
- package/esm2020/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.mjs +64 -0
- package/esm2020/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.mjs +68 -0
- package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.mjs +45 -0
- package/esm2020/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.mjs +45 -0
- package/esm2020/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.mjs +64 -0
- package/esm2020/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.mjs +74 -0
- package/esm2020/di2mt/widgets/upgrade-overview/types/upgrade-overview.mjs +2 -0
- package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.module.mjs +59 -0
- package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +82 -0
- package/esm2020/di2mt/widgets/user-upgrade/types/user-upgrade.mjs +3 -0
- package/esm2020/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.mjs +197 -0
- package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.module.mjs +40 -0
- package/esm2020/di2mt/widgets/user-upgrade/user-upgrade.service.mjs +58 -0
- package/esm2020/lib/widgets.component.mjs +22 -0
- package/esm2020/lib/widgets.module.mjs +21 -0
- package/esm2020/lib/widgets.service.mjs +14 -0
- package/esm2020/public-api.mjs +7 -0
- package/esm2020/tuki-io-tuki-widgets.mjs +5 -0
- package/esm2020/user-device-manage/public-api.mjs +9 -0
- package/esm2020/user-device-manage/src/app.constants.mjs +95 -0
- package/esm2020/user-device-manage/src/classes/device.mjs +85 -0
- package/esm2020/user-device-manage/src/classes/line-association-interface.mjs +2 -0
- package/esm2020/user-device-manage/src/classes/line-association.mjs +121 -0
- package/esm2020/user-device-manage/src/classes/line-call-info-display.mjs +10 -0
- package/esm2020/user-device-manage/src/classes/line-directory.mjs +27 -0
- package/esm2020/user-device-manage/src/classes/line.mjs +18 -0
- package/esm2020/user-device-manage/src/classes/notification.mjs +32 -0
- package/esm2020/user-device-manage/src/classes/recording-options.mjs +7 -0
- package/esm2020/user-device-manage/src/classes/simplified-user.mjs +111 -0
- package/esm2020/user-device-manage/src/classes/site-defaults.mjs +21 -0
- package/esm2020/user-device-manage/src/classes/translation-pattern.mjs +32 -0
- package/esm2020/user-device-manage/src/classes/types.mjs +24 -0
- package/esm2020/user-device-manage/src/common-functions.mjs +19 -0
- package/esm2020/user-device-manage/src/confirm-dialog/info-dialog.component.mjs +34 -0
- package/esm2020/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.mjs +31 -0
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.mjs +16 -0
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.mjs +64 -0
- package/esm2020/user-device-manage/src/device-associated-line/device-associated-line.component.mjs +179 -0
- package/esm2020/user-device-manage/src/device-list/device-list.component.mjs +24 -0
- package/esm2020/user-device-manage/src/device-manage-widget.component.mjs +335 -0
- package/esm2020/user-device-manage/src/environments/environment.mjs +11 -0
- package/esm2020/user-device-manage/src/interseptors/auth.interceptor.mjs +36 -0
- package/esm2020/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
- package/esm2020/user-device-manage/src/material.module.mjs +192 -0
- package/esm2020/user-device-manage/src/notifications/notification.component.mjs +35 -0
- package/esm2020/user-device-manage/src/services/api.service.mjs +79 -0
- package/esm2020/user-device-manage/src/services/device.service.mjs +83 -0
- package/esm2020/user-device-manage/src/services/dns.service.mjs +104 -0
- package/esm2020/user-device-manage/src/services/line.service.mjs +76 -0
- package/esm2020/user-device-manage/src/services/notification.service.mjs +62 -0
- package/esm2020/user-device-manage/src/services/removeKynFromIBM.service.mjs +25 -0
- package/esm2020/user-device-manage/src/services/site-settings.service.mjs +70 -0
- package/esm2020/user-device-manage/src/services/sorting-utils.service.mjs +197 -0
- package/esm2020/user-device-manage/src/services/user.service.mjs +243 -0
- package/esm2020/user-device-manage/src/services/utils.service.mjs +87 -0
- package/esm2020/user-device-manage/src/services/validation.service.mjs +760 -0
- package/esm2020/user-device-manage/src/user-device-manage.module.mjs +107 -0
- package/esm2020/user-device-manage/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/user-device-manage/tuki-io-tuki-widgets-user-device-manage.mjs +5 -0
- package/esm2020/user-manage/public-api.mjs +7 -0
- package/esm2020/user-manage/src/app.constants.mjs +50 -0
- package/esm2020/user-manage/src/classes/device.mjs +37 -0
- package/esm2020/user-manage/src/classes/line-association-interface.mjs +2 -0
- package/esm2020/user-manage/src/classes/line-association.mjs +110 -0
- package/esm2020/user-manage/src/classes/line-call-info-display.mjs +10 -0
- package/esm2020/user-manage/src/classes/line-directory.mjs +27 -0
- package/esm2020/user-manage/src/classes/line.mjs +18 -0
- package/esm2020/user-manage/src/classes/notification.mjs +32 -0
- package/esm2020/user-manage/src/classes/pagination.mjs +8 -0
- package/esm2020/user-manage/src/classes/recording-options.mjs +7 -0
- package/esm2020/user-manage/src/classes/simplified-user.mjs +109 -0
- package/esm2020/user-manage/src/classes/table-data.mjs +2 -0
- package/esm2020/user-manage/src/classes/translation-pattern.mjs +32 -0
- package/esm2020/user-manage/src/classes/user-list.mjs +10 -0
- package/esm2020/user-manage/src/common-functions.mjs +19 -0
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +24 -0
- package/esm2020/user-manage/src/environments/environment.mjs +11 -0
- package/esm2020/user-manage/src/interseptors/auth.interceptor.mjs +36 -0
- package/esm2020/user-manage/src/lazy-loading-select/lazy-loading-select.component.mjs +74 -0
- package/esm2020/user-manage/src/material.module.mjs +188 -0
- package/esm2020/user-manage/src/notifications/notification.component.mjs +35 -0
- package/esm2020/user-manage/src/removeKynFromIBM.service.mjs +25 -0
- package/esm2020/user-manage/src/services/api.service.mjs +79 -0
- package/esm2020/user-manage/src/services/dns.service.mjs +110 -0
- package/esm2020/user-manage/src/services/line.service.mjs +34 -0
- package/esm2020/user-manage/src/services/notification.service.mjs +62 -0
- package/esm2020/user-manage/src/services/removeKynFromIBM.service.mjs +25 -0
- package/esm2020/user-manage/src/services/site-settings.service.mjs +36 -0
- package/esm2020/user-manage/src/services/sorting-utils.service.mjs +197 -0
- package/esm2020/user-manage/src/services/user.service.mjs +207 -0
- package/esm2020/user-manage/src/services/users-search.service.mjs +50 -0
- package/esm2020/user-manage/src/services/utils.service.mjs +73 -0
- package/esm2020/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.mjs +65 -0
- package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +78 -0
- package/esm2020/user-manage/src/user-info/user-info.component.mjs +20 -0
- package/esm2020/user-manage/src/user-manage-widget.component.mjs +208 -0
- package/esm2020/user-manage/src/user-manage.module.mjs +99 -0
- package/esm2020/user-manage/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/user-manage/src/utils/pagination/pagination.component.mjs +43 -0
- package/esm2020/user-manage/tuki-io-tuki-widgets-user-manage.mjs +5 -0
- package/esm2020/users-list/public-api.mjs +9 -0
- package/esm2020/users-list/src/app.constants.mjs +54 -0
- package/esm2020/users-list/src/classes/app-location.mjs +32 -0
- package/esm2020/users-list/src/classes/device.mjs +7 -0
- package/esm2020/users-list/src/classes/line.mjs +18 -0
- package/esm2020/users-list/src/classes/move-user.mjs +178 -0
- package/esm2020/users-list/src/classes/notification.mjs +31 -0
- package/esm2020/users-list/src/classes/pagination.mjs +8 -0
- package/esm2020/users-list/src/classes/simlified-user.mjs +50 -0
- package/esm2020/users-list/src/classes/table-data.mjs +2 -0
- package/esm2020/users-list/src/classes/user-list.mjs +14 -0
- package/esm2020/users-list/src/material.module.mjs +209 -0
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.mjs +38 -0
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.mjs +23 -0
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +189 -0
- package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +38 -0
- package/esm2020/users-list/src/services/api-webex.service.mjs +18 -0
- package/esm2020/users-list/src/services/api.service.mjs +78 -0
- package/esm2020/users-list/src/services/dns.service.mjs +120 -0
- package/esm2020/users-list/src/services/events-communication.service.mjs +14 -0
- package/esm2020/users-list/src/services/move-user.service.mjs +53 -0
- package/esm2020/users-list/src/services/notification.service.mjs +62 -0
- package/esm2020/users-list/src/services/removeKynFromIBM.service.mjs +25 -0
- package/esm2020/users-list/src/services/site-settings.service.mjs +27 -0
- package/esm2020/users-list/src/services/user.service.mjs +142 -0
- package/esm2020/users-list/src/services/users-search.service.mjs +122 -0
- package/esm2020/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.mjs +34 -0
- package/esm2020/users-list/src/users-list.component.mjs +287 -0
- package/esm2020/users-list/src/users-list.module.mjs +92 -0
- package/esm2020/users-list/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/users-list/src/utils/common-functions.mjs +32 -0
- package/esm2020/users-list/src/utils/pagination/pagination.component.mjs +43 -0
- package/esm2020/users-list/src/utils/utils.service.mjs +73 -0
- package/esm2020/users-list/tuki-io-tuki-widgets-users-list.mjs +5 -0
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +1469 -0
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +3402 -0
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +2124 -0
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +1994 -0
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets.mjs +63 -0
- package/fesm2015/tuki-io-tuki-widgets.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +1460 -0
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +3364 -0
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +2107 -0
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +1973 -0
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets.mjs +63 -0
- package/fesm2020/tuki-io-tuki-widgets.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/widgets.component.d.ts +8 -0
- package/lib/widgets.module.d.ts +7 -0
- package/lib/widgets.service.d.ts +6 -0
- package/package.json +65 -13
- package/{src/public-api.ts → public-api.d.ts} +0 -4
- package/user-device-manage/index.d.ts +5 -0
- package/user-device-manage/src/app.constants.d.ts +74 -0
- package/user-device-manage/src/classes/device.d.ts +233 -0
- package/user-device-manage/src/classes/line-association-interface.d.ts +45 -0
- package/user-device-manage/src/classes/line-association.d.ts +62 -0
- package/user-device-manage/src/classes/line-call-info-display.d.ts +11 -0
- package/user-device-manage/src/classes/line-directory.d.ts +15 -0
- package/user-device-manage/src/classes/line.d.ts +140 -0
- package/user-device-manage/src/classes/notification.d.ts +18 -0
- package/user-device-manage/src/classes/recording-options.d.ts +5 -0
- package/user-device-manage/src/classes/simplified-user.d.ts +52 -0
- package/user-device-manage/src/classes/site-defaults.d.ts +146 -0
- package/user-device-manage/src/classes/translation-pattern.d.ts +19 -0
- package/user-device-manage/src/classes/types.d.ts +19 -0
- package/user-device-manage/src/common-functions.d.ts +1 -0
- package/user-device-manage/src/confirm-dialog/info-dialog.component.d.ts +20 -0
- package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.d.ts +15 -0
- package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.d.ts +7 -0
- package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.d.ts +24 -0
- package/user-device-manage/src/device-associated-line/device-associated-line.component.d.ts +89 -0
- package/user-device-manage/src/device-list/device-list.component.d.ts +11 -0
- package/user-device-manage/src/device-manage-widget.component.d.ts +71 -0
- package/user-device-manage/src/environments/environment.d.ts +9 -0
- package/user-device-manage/src/interseptors/auth.interceptor.d.ts +9 -0
- package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
- package/user-device-manage/src/material.module.d.ts +29 -0
- package/user-device-manage/src/notifications/notification.component.d.ts +19 -0
- package/user-device-manage/src/services/api.service.d.ts +20 -0
- package/user-device-manage/src/services/device.service.d.ts +21 -0
- package/user-device-manage/src/services/dns.service.d.ts +14 -0
- package/user-device-manage/src/services/line.service.d.ts +33 -0
- package/user-device-manage/src/services/notification.service.d.ts +18 -0
- package/user-device-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
- package/user-device-manage/src/services/site-settings.service.d.ts +25 -0
- package/user-device-manage/src/services/sorting-utils.service.d.ts +26 -0
- package/user-device-manage/src/services/user.service.d.ts +51 -0
- package/user-device-manage/src/services/utils.service.d.ts +10 -0
- package/user-device-manage/src/services/validation.service.d.ts +165 -0
- package/user-device-manage/src/user-device-manage.module.d.ts +22 -0
- package/user-device-manage/src/utils/app-loader/app-loader.d.ts +6 -0
- package/user-manage/index.d.ts +5 -0
- package/user-manage/src/app.constants.d.ts +29 -0
- package/user-manage/src/classes/device.d.ts +203 -0
- package/user-manage/src/classes/line-association-interface.d.ts +40 -0
- package/user-manage/src/classes/line-association.d.ts +55 -0
- package/user-manage/src/classes/line-call-info-display.d.ts +11 -0
- package/user-manage/src/classes/line-directory.d.ts +16 -0
- package/user-manage/src/classes/line.d.ts +140 -0
- package/user-manage/src/classes/notification.d.ts +18 -0
- package/user-manage/src/classes/pagination.d.ts +13 -0
- package/user-manage/src/classes/recording-options.d.ts +5 -0
- package/user-manage/src/classes/simplified-user.d.ts +50 -0
- package/user-manage/src/classes/table-data.d.ts +5 -0
- package/user-manage/src/classes/translation-pattern.d.ts +18 -0
- package/user-manage/src/classes/user-list.d.ts +34 -0
- package/user-manage/src/common-functions.d.ts +1 -0
- package/user-manage/src/device-list/device-list.component.d.ts +11 -0
- package/user-manage/src/environments/environment.d.ts +9 -0
- package/user-manage/src/interseptors/auth.interceptor.d.ts +9 -0
- package/user-manage/src/lazy-loading-select/lazy-loading-select.component.d.ts +35 -0
- package/user-manage/src/material.module.d.ts +28 -0
- package/user-manage/src/notifications/notification.component.d.ts +19 -0
- package/user-manage/src/removeKynFromIBM.service.d.ts +8 -0
- package/user-manage/src/services/api.service.d.ts +21 -0
- package/user-manage/src/services/dns.service.d.ts +14 -0
- package/user-manage/src/services/line.service.d.ts +17 -0
- package/user-manage/src/services/notification.service.d.ts +18 -0
- package/user-manage/src/services/removeKynFromIBM.service.d.ts +8 -0
- package/user-manage/src/services/site-settings.service.d.ts +9 -0
- package/user-manage/src/services/sorting-utils.service.d.ts +26 -0
- package/user-manage/src/services/user.service.d.ts +43 -0
- package/user-manage/src/services/users-search.service.d.ts +25 -0
- package/user-manage/src/services/utils.service.d.ts +9 -0
- package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.d.ts +24 -0
- package/user-manage/src/user-calling/user-calling.component.d.ts +30 -0
- package/user-manage/src/user-info/user-info.component.d.ts +9 -0
- package/user-manage/src/user-manage-widget.component.d.ts +45 -0
- package/user-manage/src/user-manage.module.d.ts +21 -0
- package/user-manage/src/utils/app-loader/app-loader.d.ts +6 -0
- package/user-manage/src/utils/pagination/pagination.component.d.ts +18 -0
- package/users-list/index.d.ts +5 -0
- package/users-list/src/app.constants.d.ts +36 -0
- package/users-list/src/classes/app-location.d.ts +17 -0
- package/users-list/src/classes/device.d.ts +224 -0
- package/users-list/src/classes/line.d.ts +140 -0
- package/users-list/src/classes/move-user.d.ts +85 -0
- package/users-list/src/classes/notification.d.ts +18 -0
- package/users-list/src/classes/pagination.d.ts +13 -0
- package/users-list/src/classes/simlified-user.d.ts +25 -0
- package/users-list/src/classes/table-data.d.ts +5 -0
- package/users-list/src/classes/user-list.d.ts +36 -0
- package/users-list/src/material.module.d.ts +31 -0
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.d.ts +21 -0
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.d.ts +12 -0
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +55 -0
- package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +17 -0
- package/users-list/src/services/api-webex.service.d.ts +8 -0
- package/users-list/src/services/api.service.d.ts +21 -0
- package/users-list/src/services/dns.service.d.ts +18 -0
- package/users-list/src/services/events-communication.service.d.ts +8 -0
- package/users-list/src/services/move-user.service.d.ts +17 -0
- package/users-list/src/services/notification.service.d.ts +18 -0
- package/users-list/src/services/removeKynFromIBM.service.d.ts +8 -0
- package/users-list/src/services/site-settings.service.d.ts +11 -0
- package/users-list/src/services/user.service.d.ts +35 -0
- package/users-list/src/services/users-search.service.d.ts +34 -0
- package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.d.ts +20 -0
- package/users-list/src/users-list.component.d.ts +60 -0
- package/users-list/src/users-list.module.d.ts +18 -0
- package/users-list/src/utils/app-loader/app-loader.d.ts +6 -0
- package/users-list/src/utils/common-functions.d.ts +2 -0
- package/users-list/src/utils/pagination/pagination.component.d.ts +18 -0
- package/users-list/src/utils/utils.service.d.ts +9 -0
- package/di2mt/api/api.endpoints.ts +0 -20
- package/di2mt/assets/icons/already_upgraded.png +0 -0
- package/di2mt/assets/icons/check2_icon.png +0 -0
- package/di2mt/assets/icons/check_icon.png +0 -0
- package/di2mt/assets/icons/expand_icon.png +0 -0
- package/di2mt/assets/icons/issue_icon.png +0 -0
- package/di2mt/assets/icons/menu_icon.png +0 -0
- package/di2mt/assets/icons/ready_to_upgrade.png +0 -0
- package/di2mt/assets/icons/search_icon.png +0 -0
- package/di2mt/assets/icons/site.png +0 -0
- package/di2mt/assets/icons/user.png +0 -0
- package/di2mt/assets/icons/warning_icon.png +0 -0
- package/di2mt/ng-package.json +0 -7
- package/di2mt/shared/components/card/card.component.html +0 -11
- package/di2mt/shared/components/card/card.component.scss +0 -48
- package/di2mt/shared/components/card/card.component.ts +0 -10
- package/di2mt/shared/components/chart-card/chart-card.component.html +0 -15
- package/di2mt/shared/components/chart-card/chart-card.component.scss +0 -38
- package/di2mt/shared/components/chart-card/chart-card.component.ts +0 -71
- package/di2mt/shared/components/index.ts +0 -6
- package/di2mt/shared/components/stat-card/stat-card.component.html +0 -57
- package/di2mt/shared/components/stat-card/stat-card.component.scss +0 -74
- package/di2mt/shared/components/stat-card/stat-card.component.ts +0 -44
- package/di2mt/shared/components/status-list-card/status-list-card.component.html +0 -28
- package/di2mt/shared/components/status-list-card/status-list-card.component.scss +0 -55
- package/di2mt/shared/components/status-list-card/status-list-card.component.ts +0 -11
- package/di2mt/shared/components/summary-card/summary-card.component.html +0 -12
- package/di2mt/shared/components/summary-card/summary-card.component.scss +0 -76
- package/di2mt/shared/components/summary-card/summary-card.component.ts +0 -27
- package/di2mt/shared/components/table-filters/table-filters.component.html +0 -28
- package/di2mt/shared/components/table-filters/table-filters.component.scss +0 -52
- package/di2mt/shared/components/table-filters/table-filters.component.ts +0 -28
- package/di2mt/shared/material.module.ts +0 -36
- package/di2mt/shared/services/api.service.ts +0 -92
- package/di2mt/shared/shared.module.ts +0 -38
- package/di2mt/shared/types/constants.ts +0 -14
- package/di2mt/shared/types/data-table.ts +0 -5
- package/di2mt/shared/types/table/filter.ts +0 -14
- package/di2mt/styles/tuki-widgets-theme.scss +0 -13
- package/di2mt/styles/variables.scss +0 -92
- package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.html +0 -92
- package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.scss +0 -187
- package/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.ts +0 -205
- package/di2mt/widgets/site-upgrade/site-upgrade.module.ts +0 -24
- package/di2mt/widgets/site-upgrade/site-upgrade.service.ts +0 -45
- package/di2mt/widgets/upgrade-overview/cards/already-upgraded-sites/already-upgraded-sites-card.component.ts +0 -52
- package/di2mt/widgets/upgrade-overview/cards/already-upgraded-users/already-upgraded-users-card.component.ts +0 -53
- package/di2mt/widgets/upgrade-overview/cards/preconditions-status-list/preconditions-status-list-card.component.ts +0 -67
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.html +0 -7
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.scss +0 -0
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-sites/ready-to-upgrade-sites-card.component.ts +0 -45
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.html +0 -7
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.scss +0 -0
- package/di2mt/widgets/upgrade-overview/cards/ready-to-upgrade-users/ready-to-upgrade-users-card.component.ts +0 -45
- package/di2mt/widgets/upgrade-overview/cards/site-infrastructure-status-list/site-infrastructure-status-list-card.component.ts +0 -59
- package/di2mt/widgets/upgrade-overview/cards/upgrade-state-comparison-chart/upgrade-state-comparison-chart-card.component.ts +0 -70
- package/di2mt/widgets/upgrade-overview/upgrade-overview.module.ts +0 -42
- package/di2mt/widgets/upgrade-overview/upgrade-overview.service.ts +0 -95
- package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.html +0 -131
- package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.scss +0 -275
- package/di2mt/widgets/user-upgrade/user-upgrade-data-table/user-upgrade-data-table.component.ts +0 -218
- package/di2mt/widgets/user-upgrade/user-upgrade.module.ts +0 -24
- package/di2mt/widgets/user-upgrade/user-upgrade.service.ts +0 -73
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -10
- package/src/lib/widgets.component.spec.ts +0 -23
- package/src/lib/widgets.component.ts +0 -20
- package/src/lib/widgets.module.ts +0 -16
- package/src/lib/widgets.service.spec.ts +0 -16
- package/src/lib/widgets.service.ts +0 -9
- package/src/test.ts +0 -27
- package/styles.scss +0 -572
- package/tsconfig.lib.json +0 -36
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
- package/user-device-manage/ng-package.json +0 -7
- package/user-device-manage/src/app.constants.ts +0 -96
- package/user-device-manage/src/assets/icons/arrow-left.svg +0 -5
- package/user-device-manage/src/assets/icons/arrow-right.svg +0 -5
- package/user-device-manage/src/assets/icons/close_icon_x.svg +0 -3
- package/user-device-manage/src/assets/icons/delete_icon.svg +0 -5
- package/user-device-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
- package/user-device-manage/src/assets/icons/icon_user.svg +0 -1
- package/user-device-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
- package/user-device-manage/src/classes/device.ts +0 -292
- package/user-device-manage/src/classes/line-association-interface.ts +0 -50
- package/user-device-manage/src/classes/line-association.ts +0 -177
- package/user-device-manage/src/classes/line-call-info-display.ts +0 -21
- package/user-device-manage/src/classes/line-directory.ts +0 -41
- package/user-device-manage/src/classes/line.ts +0 -144
- package/user-device-manage/src/classes/notification.ts +0 -40
- package/user-device-manage/src/classes/recording-options.ts +0 -6
- package/user-device-manage/src/classes/simplified-user.ts +0 -169
- package/user-device-manage/src/classes/site-defaults.ts +0 -167
- package/user-device-manage/src/classes/translation-pattern.ts +0 -50
- package/user-device-manage/src/classes/types.ts +0 -19
- package/user-device-manage/src/classes/user-interface.ts +0 -225
- package/user-device-manage/src/classes/user.ts +0 -8
- package/user-device-manage/src/common-functions.ts +0 -16
- package/user-device-manage/src/confirm-dialog/info-dialog.component.html +0 -14
- package/user-device-manage/src/confirm-dialog/info-dialog.component.scss +0 -80
- package/user-device-manage/src/confirm-dialog/info-dialog.component.ts +0 -35
- package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.html +0 -21
- package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.scss +0 -97
- package/user-device-manage/src/device-associated-line/associated-line-row/associated-line-row.component.ts +0 -28
- package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.html +0 -6
- package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.scss +0 -20
- package/user-device-manage/src/device-associated-line/device-associated-line-details-box/device-associated-line-details-box.component.ts +0 -13
- package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.html +0 -6
- package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.scss +0 -4
- package/user-device-manage/src/device-associated-line/device-associated-line-extension/device-associated-line-extension.component.ts +0 -63
- package/user-device-manage/src/device-associated-line/device-associated-line.component.html +0 -241
- package/user-device-manage/src/device-associated-line/device-associated-line.component.scss +0 -500
- package/user-device-manage/src/device-associated-line/device-associated-line.component.ts +0 -194
- package/user-device-manage/src/device-list/device-list.component.html +0 -27
- package/user-device-manage/src/device-list/device-list.component.scss +0 -131
- package/user-device-manage/src/device-list/device-list.component.ts +0 -25
- package/user-device-manage/src/device-manage-widget.component.html +0 -209
- package/user-device-manage/src/device-manage-widget.component.scss +0 -502
- package/user-device-manage/src/device-manage-widget.component.ts +0 -354
- package/user-device-manage/src/environments/environment.prod.ts +0 -9
- package/user-device-manage/src/environments/environment.ts +0 -10
- package/user-device-manage/src/interseptors/auth.interceptor.ts +0 -35
- package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
- package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
- package/user-device-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
- package/user-device-manage/src/material.module.ts +0 -87
- package/user-device-manage/src/notifications/notification.component.html +0 -33
- package/user-device-manage/src/notifications/notification.component.scss +0 -84
- package/user-device-manage/src/notifications/notification.component.ts +0 -46
- package/user-device-manage/src/removeKynFromIBM.service.ts +0 -25
- package/user-device-manage/src/services/api.service.ts +0 -87
- package/user-device-manage/src/services/common-functions.ts +0 -17
- package/user-device-manage/src/services/device.service.ts +0 -95
- package/user-device-manage/src/services/dns.service.ts +0 -111
- package/user-device-manage/src/services/line.service.ts +0 -89
- package/user-device-manage/src/services/notification.service.ts +0 -68
- package/user-device-manage/src/services/removeKynFromIBM.service.ts +0 -25
- package/user-device-manage/src/services/site-settings.service.ts +0 -82
- package/user-device-manage/src/services/sorting-utils.service.ts +0 -203
- package/user-device-manage/src/services/user.service.ts +0 -283
- package/user-device-manage/src/services/utils.service.ts +0 -87
- package/user-device-manage/src/services/validation.service.ts +0 -829
- package/user-device-manage/src/styles/_variables.scss +0 -90
- package/user-device-manage/src/styles/form.scss +0 -231
- package/user-device-manage/src/styles/icons.scss +0 -32
- package/user-device-manage/src/styles/styles.scss +0 -110
- package/user-device-manage/src/styles/tables.scss +0 -30
- package/user-device-manage/src/user-device-manage.module.ts +0 -73
- package/user-device-manage/src/utils/app-loader/app-loader.component.html +0 -6
- package/user-device-manage/src/utils/app-loader/app-loader.component.scss +0 -11
- package/user-device-manage/src/utils/app-loader/app-loader.ts +0 -13
- package/user-manage/ng-package.json +0 -7
- package/user-manage/src/app.constants.ts +0 -50
- package/user-manage/src/assets/icons/arrow-left.svg +0 -5
- package/user-manage/src/assets/icons/arrow-right.svg +0 -5
- package/user-manage/src/assets/icons/delete_icon.svg +0 -5
- package/user-manage/src/assets/icons/dragger-vertical-icon.svg +0 -3
- package/user-manage/src/assets/icons/icon_user.svg +0 -1
- package/user-manage/src/assets/icons/vartical_divider_icon.svg +0 -3
- package/user-manage/src/classes/device.ts +0 -232
- package/user-manage/src/classes/line-association-interface.ts +0 -43
- package/user-manage/src/classes/line-association.ts +0 -161
- package/user-manage/src/classes/line-call-info-display.ts +0 -21
- package/user-manage/src/classes/line-directory.ts +0 -42
- package/user-manage/src/classes/line.ts +0 -144
- package/user-manage/src/classes/notification.ts +0 -39
- package/user-manage/src/classes/pagination.ts +0 -18
- package/user-manage/src/classes/recording-options.ts +0 -6
- package/user-manage/src/classes/simplified-user.ts +0 -165
- package/user-manage/src/classes/table-data.ts +0 -6
- package/user-manage/src/classes/translation-pattern.ts +0 -49
- package/user-manage/src/classes/user-interface.ts +0 -225
- package/user-manage/src/classes/user-list.ts +0 -42
- package/user-manage/src/classes/user.ts +0 -8
- package/user-manage/src/common-functions.ts +0 -16
- package/user-manage/src/device-list/device-list.component.html +0 -27
- package/user-manage/src/device-list/device-list.component.scss +0 -131
- package/user-manage/src/device-list/device-list.component.ts +0 -25
- package/user-manage/src/environments/environment.prod.ts +0 -9
- package/user-manage/src/environments/environment.ts +0 -10
- package/user-manage/src/interseptors/auth.interceptor.ts +0 -35
- package/user-manage/src/lazy-loading-select/lazy-loading-select.component.html +0 -50
- package/user-manage/src/lazy-loading-select/lazy-loading-select.component.scss +0 -8
- package/user-manage/src/lazy-loading-select/lazy-loading-select.component.ts +0 -81
- package/user-manage/src/material.module.ts +0 -85
- package/user-manage/src/notifications/notification.component.html +0 -33
- package/user-manage/src/notifications/notification.component.scss +0 -84
- package/user-manage/src/notifications/notification.component.ts +0 -46
- package/user-manage/src/removeKynFromIBM.service.ts +0 -25
- package/user-manage/src/services/api.service.ts +0 -90
- package/user-manage/src/services/dns.service.ts +0 -116
- package/user-manage/src/services/line.service.ts +0 -31
- package/user-manage/src/services/notification.service.ts +0 -68
- package/user-manage/src/services/removeKynFromIBM.service.ts +0 -25
- package/user-manage/src/services/site-settings.service.ts +0 -35
- package/user-manage/src/services/sorting-utils.service.ts +0 -203
- package/user-manage/src/services/user.service.ts +0 -242
- package/user-manage/src/services/users-search.service.ts +0 -59
- package/user-manage/src/services/utils.service.ts +0 -71
- package/user-manage/src/styles/_variables.scss +0 -90
- package/user-manage/src/styles/form.scss +0 -231
- package/user-manage/src/styles/icons.scss +0 -32
- package/user-manage/src/styles/styles.scss +0 -110
- package/user-manage/src/styles/tables.scss +0 -30
- package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.html +0 -10
- package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.scss +0 -429
- package/user-manage/src/user-calling/user-calling-extension/user-calling-extension.component.ts +0 -63
- package/user-manage/src/user-calling/user-calling.component.html +0 -32
- package/user-manage/src/user-calling/user-calling.component.scss +0 -444
- package/user-manage/src/user-calling/user-calling.component.ts +0 -89
- package/user-manage/src/user-details/notification.service.ts +0 -68
- package/user-manage/src/user-info/user-info.component.html +0 -29
- package/user-manage/src/user-info/user-info.component.scss +0 -64
- package/user-manage/src/user-info/user-info.component.ts +0 -19
- package/user-manage/src/user-manage-widget.component.html +0 -290
- package/user-manage/src/user-manage-widget.component.scss +0 -463
- package/user-manage/src/user-manage-widget.component.ts +0 -212
- package/user-manage/src/user-manage.module.ts +0 -63
- package/user-manage/src/utils/app-loader/app-loader.component.html +0 -6
- package/user-manage/src/utils/app-loader/app-loader.component.scss +0 -11
- package/user-manage/src/utils/app-loader/app-loader.ts +0 -13
- package/user-manage/src/utils/pagination/pagination.component.html +0 -26
- package/user-manage/src/utils/pagination/pagination.component.scss +0 -41
- package/user-manage/src/utils/pagination/pagination.component.ts +0 -41
- package/users-list/ng-package.json +0 -7
- package/users-list/src/app.constants.ts +0 -54
- package/users-list/src/assets/icons/close_icon_modal.svg +0 -3
- package/users-list/src/assets/icons/icon_user.svg +0 -1
- package/users-list/src/assets/icons/move_user_to_another_location.svg +0 -14
- package/users-list/src/assets/icons/white-close-icon.svg +0 -3
- package/users-list/src/classes/app-location.ts +0 -36
- package/users-list/src/classes/device.ts +0 -225
- package/users-list/src/classes/line.ts +0 -144
- package/users-list/src/classes/move-user.ts +0 -225
- package/users-list/src/classes/notification.ts +0 -38
- package/users-list/src/classes/pagination.ts +0 -18
- package/users-list/src/classes/simlified-user.ts +0 -74
- package/users-list/src/classes/table-data.ts +0 -6
- package/users-list/src/classes/user-interface.ts +0 -225
- package/users-list/src/classes/user-list.ts +0 -47
- package/users-list/src/classes/user.ts +0 -8
- package/users-list/src/material.module.ts +0 -94
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.html +0 -37
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.scss +0 -129
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user/device-move-user-wizard.component.ts +0 -46
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.html +0 -31
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.scss +0 -20
- package/users-list/src/move-user-wizard/move-user-stepper/device-move-user-tab/devices-move-user-wizard-tab.component.ts +0 -26
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.html +0 -222
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.scss +0 -239
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.ts +0 -206
- package/users-list/src/move-user-wizard/move-user-wizard.component.html +0 -12
- package/users-list/src/move-user-wizard/move-user-wizard.component.scss +0 -41
- package/users-list/src/move-user-wizard/move-user-wizard.component.ts +0 -36
- package/users-list/src/services/api-webex.service.ts +0 -14
- package/users-list/src/services/api.service.ts +0 -90
- package/users-list/src/services/dns.service.ts +0 -128
- package/users-list/src/services/events-communication.service.ts +0 -11
- package/users-list/src/services/move-user.service.ts +0 -59
- package/users-list/src/services/notification.service.ts +0 -68
- package/users-list/src/services/removeKynFromIBM.service.ts +0 -25
- package/users-list/src/services/site-settings.service.ts +0 -26
- package/users-list/src/services/user.service.ts +0 -159
- package/users-list/src/services/users-search.service.ts +0 -137
- package/users-list/src/styles/styles.scss +0 -572
- package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.html +0 -15
- package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.scss +0 -103
- package/users-list/src/user-list-confirm-dialog/user-list-confirm-dialog.component.ts +0 -35
- package/users-list/src/users-list.component.css +0 -4
- package/users-list/src/users-list.component.css.map +0 -1
- package/users-list/src/users-list.component.html +0 -86
- package/users-list/src/users-list.component.scss +0 -572
- package/users-list/src/users-list.component.ts +0 -312
- package/users-list/src/users-list.module.ts +0 -63
- package/users-list/src/utils/app-loader/app-loader.component.css +0 -11
- package/users-list/src/utils/app-loader/app-loader.component.css.map +0 -1
- package/users-list/src/utils/app-loader/app-loader.component.html +0 -6
- package/users-list/src/utils/app-loader/app-loader.component.scss +0 -11
- package/users-list/src/utils/app-loader/app-loader.ts +0 -13
- package/users-list/src/utils/common-functions.ts +0 -32
- package/users-list/src/utils/notifications/notification.component.html +0 -33
- package/users-list/src/utils/notifications/notification.component.scss +0 -84
- package/users-list/src/utils/notifications/notification.component.ts +0 -46
- package/users-list/src/utils/pagination/pagination.component.css +0 -45
- package/users-list/src/utils/pagination/pagination.component.css.map +0 -1
- package/users-list/src/utils/pagination/pagination.component.html +0 -26
- package/users-list/src/utils/pagination/pagination.component.scss +0 -41
- package/users-list/src/utils/pagination/pagination.component.ts +0 -41
- package/users-list/src/utils/utils.service.ts +0 -71
- /package/user-device-manage/{public-api.ts → public-api.d.ts} +0 -0
- /package/user-manage/{public-api.ts → public-api.d.ts} +0 -0
- /package/users-list/{public-api.ts → public-api.d.ts} +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { map } from "rxjs";
|
|
3
|
+
import { API } from "../../api/api.endpoints";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../shared/services/api.service";
|
|
6
|
+
export class UpgradeOverviewService {
|
|
7
|
+
constructor(apiService) {
|
|
8
|
+
this.apiService = apiService;
|
|
9
|
+
}
|
|
10
|
+
getUpgradePreconditions() {
|
|
11
|
+
return this.apiService.fetch(API.OVERVIEW.GET_UPGRADE_PRECONDITIONS.replace(':customerId', this.customerId)).pipe(map((resp) => {
|
|
12
|
+
return {
|
|
13
|
+
id: resp.id,
|
|
14
|
+
customerId: resp.customerId,
|
|
15
|
+
controlHubIntegration: resp.controlHubIntegration,
|
|
16
|
+
numberOfAvailableLicences: resp.availableLicences
|
|
17
|
+
};
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
getSiteInfrastructureSummary() {
|
|
21
|
+
return this.apiService.fetch(API.OVERVIEW.GET_SITE_INFRASTRUCTURE.replace(':customerId', this.customerId)).pipe(map((resp) => {
|
|
22
|
+
return {
|
|
23
|
+
id: resp.id,
|
|
24
|
+
customerId: resp.customerId,
|
|
25
|
+
totalSites: resp.totalSites,
|
|
26
|
+
totalLocations: resp.totalLocations,
|
|
27
|
+
totalPSTNs: resp.totalPSTNS
|
|
28
|
+
};
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
getUsersUpgradeSummary() {
|
|
32
|
+
return this.apiService.fetch(API.OVERVIEW.GET_USERS_UPGRADE_SUMMARY.replace(':customerId', this.customerId)).pipe(map((resp) => {
|
|
33
|
+
return {
|
|
34
|
+
id: resp.id,
|
|
35
|
+
customerId: resp.customerId,
|
|
36
|
+
totalUsers: resp.totalUsers,
|
|
37
|
+
totalReadyUsers: resp.totalUsersReady,
|
|
38
|
+
totalUpgradedUsers: resp.totalUsersUpgraded
|
|
39
|
+
};
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
getSitesUpgradeSummary() {
|
|
43
|
+
return this.apiService.fetch(API.OVERVIEW.GET_SITES_UPGRADE_SUMMARY.replace(':customerId', this.customerId)).pipe(map((resp) => {
|
|
44
|
+
return {
|
|
45
|
+
id: resp.id,
|
|
46
|
+
customerId: resp.customerId,
|
|
47
|
+
totalSites: resp.totalSites,
|
|
48
|
+
totalReadySites: resp.totalSitesReady,
|
|
49
|
+
totalUpgradedSites: resp.totalSitesUpgraded
|
|
50
|
+
};
|
|
51
|
+
}));
|
|
52
|
+
}
|
|
53
|
+
getUsersUpgradeReadiness() {
|
|
54
|
+
return this.apiService.fetch(API.OVERVIEW.GET_USERS_UPGRADE_READINESS.replace(':customerId', this.customerId)).pipe(map((resp) => {
|
|
55
|
+
return {
|
|
56
|
+
id: resp.id,
|
|
57
|
+
customerId: resp.customerId,
|
|
58
|
+
totalUsers: resp.totalUsers,
|
|
59
|
+
totalReadyUsers: resp.totalUsersReady
|
|
60
|
+
};
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
getSitesUpgradeReadiness() {
|
|
64
|
+
return this.apiService.fetch(API.OVERVIEW.GET_SITES_UPGRADE_READINESS.replace(':customerId', this.customerId)).pipe(map((resp) => {
|
|
65
|
+
return {
|
|
66
|
+
id: resp.id,
|
|
67
|
+
customerId: resp.customerId,
|
|
68
|
+
totalSites: resp.totalSites,
|
|
69
|
+
totalReadySites: resp.totalSitesReady
|
|
70
|
+
};
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
UpgradeOverviewService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpgradeOverviewService, deps: [{ token: i1.APIService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
75
|
+
UpgradeOverviewService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpgradeOverviewService, providedIn: 'root' });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UpgradeOverviewService, decorators: [{
|
|
77
|
+
type: Injectable,
|
|
78
|
+
args: [{
|
|
79
|
+
providedIn: 'root'
|
|
80
|
+
}]
|
|
81
|
+
}], ctorParameters: function () { return [{ type: i1.APIService }]; } });
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1vdmVydmlldy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXBncmFkZS1vdmVydmlldy91cGdyYWRlLW92ZXJ2aWV3LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBSzlDLE1BQU0sT0FBTyxzQkFBc0I7SUFHL0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUFJLENBQUM7SUFFL0MsdUJBQXVCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ2pGLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLE9BQU87Z0JBQ0gsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtnQkFDakQseUJBQXlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUNwRCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFRCw0QkFBNEI7UUFDeEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDeEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVLENB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dEIsc0JBQXNCLGNBRm5CLE1BQU07NEZBRVQsc0JBQXNCO2tCQUhsQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaXRlSW5mcmFzdHJ1Y3R1cmVTdW1tYXJ5LCBTaXRlc1VwZ3JhZGVSZWFkaW5lc3MsIFNpdGVzVXBncmFkZVN1bW1hcnksIFVwZ3JhZGVQcmVjb25kaXRpb25zLCBVc2Vyc1VwZ3JhZGVSZWFkaW5lc3MsIFVzZXJzVXBncmFkZVN1bW1hcnkgfSBmcm9tIFwiLi90eXBlcy91cGdyYWRlLW92ZXJ2aWV3XCI7XHJcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gXCIuLi8uLi9hcGkvYXBpLmVuZHBvaW50c1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGdyYWRlT3ZlcnZpZXdTZXJ2aWNlIHtcclxuICAgIGN1c3RvbWVySWQhOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBnZXRVcGdyYWRlUHJlY29uZGl0aW9ucygpOiBPYnNlcnZhYmxlPFVwZ3JhZGVQcmVjb25kaXRpb25zPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9VUEdSQURFX1BSRUNPTkRJVElPTlMucmVwbGFjZSgnOmN1c3RvbWVySWQnLCB0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgICAgKS5waXBlKG1hcCgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHJlc3AuaWQsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21lcklkOiByZXNwLmN1c3RvbWVySWQsXHJcbiAgICAgICAgICAgICAgICBjb250cm9sSHViSW50ZWdyYXRpb246IHJlc3AuY29udHJvbEh1YkludGVncmF0aW9uLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyT2ZBdmFpbGFibGVMaWNlbmNlczogcmVzcC5hdmFpbGFibGVMaWNlbmNlc1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaXRlSW5mcmFzdHJ1Y3R1cmVTdW1tYXJ5KCk6IE9ic2VydmFibGU8U2l0ZUluZnJhc3RydWN0dXJlU3VtbWFyeT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goXHJcbiAgICAgICAgICAgIEFQSS5PVkVSVklFVy5HRVRfU0lURV9JTkZSQVNUUlVDVFVSRS5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApLnBpcGUobWFwKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpZDogcmVzcC5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHJlc3AuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgICAgIHRvdGFsU2l0ZXM6IHJlc3AudG90YWxTaXRlcyxcclxuICAgICAgICAgICAgICAgIHRvdGFsTG9jYXRpb25zOiByZXNwLnRvdGFsTG9jYXRpb25zLFxyXG4gICAgICAgICAgICAgICAgdG90YWxQU1ROczogcmVzcC50b3RhbFBTVE5TXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJzVXBncmFkZVN1bW1hcnkoKTogT2JzZXJ2YWJsZTxVc2Vyc1VwZ3JhZGVTdW1tYXJ5PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9VU0VSU19VUEdSQURFX1NVTU1BUlkucmVwbGFjZSgnOmN1c3RvbWVySWQnLCB0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgICAgKS5waXBlKG1hcCgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHJlc3AuaWQsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21lcklkOiByZXNwLmN1c3RvbWVySWQsXHJcbiAgICAgICAgICAgICAgICB0b3RhbFVzZXJzOiByZXNwLnRvdGFsVXNlcnMsXHJcbiAgICAgICAgICAgICAgICB0b3RhbFJlYWR5VXNlcnM6IHJlc3AudG90YWxVc2Vyc1JlYWR5LFxyXG4gICAgICAgICAgICAgICAgdG90YWxVcGdyYWRlZFVzZXJzOiByZXNwLnRvdGFsVXNlcnNVcGdyYWRlZFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTaXRlc1VwZ3JhZGVTdW1tYXJ5KCk6IE9ic2VydmFibGU8U2l0ZXNVcGdyYWRlU3VtbWFyeT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goXHJcbiAgICAgICAgICAgIEFQSS5PVkVSVklFVy5HRVRfU0lURVNfVVBHUkFERV9TVU1NQVJZLnJlcGxhY2UoJzpjdXN0b21lcklkJywgdGhpcy5jdXN0b21lcklkKVxyXG4gICAgICAgICkucGlwZShtYXAoKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIGlkOiByZXNwLmlkLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tZXJJZDogcmVzcC5jdXN0b21lcklkLFxyXG4gICAgICAgICAgICAgICAgdG90YWxTaXRlczogcmVzcC50b3RhbFNpdGVzLFxyXG4gICAgICAgICAgICAgICAgdG90YWxSZWFkeVNpdGVzOiByZXNwLnRvdGFsU2l0ZXNSZWFkeSxcclxuICAgICAgICAgICAgICAgIHRvdGFsVXBncmFkZWRTaXRlczogcmVzcC50b3RhbFNpdGVzVXBncmFkZWRcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0VXNlcnNVcGdyYWRlUmVhZGluZXNzKCk6IE9ic2VydmFibGU8VXNlcnNVcGdyYWRlUmVhZGluZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9VU0VSU19VUEdSQURFX1JFQURJTkVTUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApLnBpcGUobWFwKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpZDogcmVzcC5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHJlc3AuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgICAgIHRvdGFsVXNlcnM6IHJlc3AudG90YWxVc2VycyxcclxuICAgICAgICAgICAgICAgIHRvdGFsUmVhZHlVc2VyczogcmVzcC50b3RhbFVzZXJzUmVhZHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U2l0ZXNVcGdyYWRlUmVhZGluZXNzKCk6IE9ic2VydmFibGU8U2l0ZXNVcGdyYWRlUmVhZGluZXNzPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5mZXRjaChcclxuICAgICAgICAgICAgQVBJLk9WRVJWSUVXLkdFVF9TSVRFU19VUEdSQURFX1JFQURJTkVTUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApLnBpcGUobWFwKChyZXNwKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBpZDogcmVzcC5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHJlc3AuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgICAgIHRvdGFsU2l0ZXM6IHJlc3AudG90YWxTaXRlcyxcclxuICAgICAgICAgICAgICAgIHRvdGFsUmVhZHlTaXRlczogcmVzcC50b3RhbFNpdGVzUmVhZHlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
;
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXNlci11cGdyYWRlL3R5cGVzL3VzZXItdXBncmFkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFUEVOREVOQ0lFU19TVEFUVVMsIFN0YXR1cyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdHlwZXMvY29uc3RhbnRzXCI7XHJcblxyXG5leHBvcnQgdHlwZSBEZXBlbmRlbmNpZXNTdGF0dXMgPSB0eXBlb2YgREVQRU5ERU5DSUVTX1NUQVRVU1trZXlvZiB0eXBlb2YgREVQRU5ERU5DSUVTX1NUQVRVU107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJVcGdyYWRlUmVjb3JkIHtcclxuICAgIHVzZXJJZDogc3RyaW5nO1xyXG4gICAgdXNlck5hbWU6IHN0cmluZztcclxuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcclxuICAgIHNpdGVJZDogc3RyaW5nO1xyXG4gICAgY3VjbUlkOiBzdHJpbmc7XHJcbiAgICBzaXRlTmFtZTogc3RyaW5nO1xyXG4gICAgZGV2aWNlczogc3RyaW5nW107XHJcbiAgICBwcmltYXJ5RXh0ZW5zaW9uPzogc3RyaW5nO1xyXG4gICAgZGV2aWNlU3RhdHVzOiBTdGF0dXM7XHJcbiAgICBkaWFsUGxhblN0YXR1czogU3RhdHVzO1xyXG4gICAgZGVwZW5kZW5jaWVzU3RhdHVzOiBEZXBlbmRlbmNpZXNTdGF0dXM7XHJcbiAgICB1cGdyYWRlU3RhdHVzOiBTdGF0dXM7XHJcbn07Il19
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { SelectionModel } from "@angular/cdk/collections";
|
|
2
|
+
import { Component, inject, Input } from "@angular/core";
|
|
3
|
+
import { MatTableDataSource } from "@angular/material/table";
|
|
4
|
+
import { Subject } from "rxjs";
|
|
5
|
+
import { takeUntil } from "rxjs";
|
|
6
|
+
import { UserUpgradeService } from "../user-upgrade.service";
|
|
7
|
+
import { DEPENDENCIES_STATUS, STATUS_ENTRIES } from "../../../shared/types/constants";
|
|
8
|
+
import { APIService } from "../../../shared/services/api.service";
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common";
|
|
11
|
+
import * as i2 from "../../../shared/components/summary-card/summary-card.component";
|
|
12
|
+
import * as i3 from "../../../shared/components/table-filters/table-filters.component";
|
|
13
|
+
import * as i4 from "@angular/material/table";
|
|
14
|
+
import * as i5 from "@angular/material/button";
|
|
15
|
+
import * as i6 from "@angular/material/checkbox";
|
|
16
|
+
export class UserUpgradeDataTableComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.destroy$ = new Subject();
|
|
19
|
+
this.userUpgradeService = inject(UserUpgradeService);
|
|
20
|
+
this.apiService = inject(APIService);
|
|
21
|
+
this.STATUS_ENTRIES = STATUS_ENTRIES;
|
|
22
|
+
this.DEPENDENCIES_STATUS = DEPENDENCIES_STATUS;
|
|
23
|
+
this.displayedColumns = ['select', 'user', 'site', 'device', 'dialPlanStatus', 'dependencies', 'userUpgradeStatus'];
|
|
24
|
+
this.selection = new SelectionModel(true, []);
|
|
25
|
+
this.filters = [];
|
|
26
|
+
this.statusCounts = {};
|
|
27
|
+
this.activeFilters = {};
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.apiService.token = this.token;
|
|
31
|
+
this.userUpgradeService.customerId = this.customerId;
|
|
32
|
+
this.userUpgradeService.getUserUpgradeRecords()
|
|
33
|
+
.pipe(takeUntil(this.destroy$))
|
|
34
|
+
.subscribe((records) => {
|
|
35
|
+
this.data = new MatTableDataSource(records);
|
|
36
|
+
this.setupCustomFilter();
|
|
37
|
+
this.initializeFilters(records);
|
|
38
|
+
});
|
|
39
|
+
this.userUpgradeService.getUserUpgradeStatusCounts()
|
|
40
|
+
.pipe(takeUntil(this.destroy$))
|
|
41
|
+
.subscribe((statusCounts) => {
|
|
42
|
+
this.statusCounts['Ready'] = statusCounts['READY'] || 0;
|
|
43
|
+
this.statusCounts['Not Ready'] = statusCounts['NOT_READY'] || 0;
|
|
44
|
+
this.statusCounts['Completed'] = statusCounts['COMPLETED'] || 0;
|
|
45
|
+
this.statusCounts['Failed'] = statusCounts['FAILED'] || 0;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
ngOnDestroy() {
|
|
49
|
+
this.destroy$.next();
|
|
50
|
+
this.destroy$.complete();
|
|
51
|
+
}
|
|
52
|
+
initializeFilters(records) {
|
|
53
|
+
// Extract unique sites from actual data
|
|
54
|
+
const uniqueSites = [...new Set(records.map(record => record.siteName))];
|
|
55
|
+
const siteOptions = uniqueSites.map(site => ({
|
|
56
|
+
label: site,
|
|
57
|
+
value: site.toLowerCase().replace(/\s+/g, '-')
|
|
58
|
+
}));
|
|
59
|
+
// Extract unique statuses from actual data
|
|
60
|
+
const uniqueStatuses = [...new Set(records.map(record => record.upgradeStatus))];
|
|
61
|
+
const statusOptions = uniqueStatuses.map(status => ({
|
|
62
|
+
label: STATUS_ENTRIES[status],
|
|
63
|
+
value: status.toLowerCase().replace(/\s+/g, '-')
|
|
64
|
+
}));
|
|
65
|
+
this.filters = [
|
|
66
|
+
{
|
|
67
|
+
id: 'userName',
|
|
68
|
+
type: 'search',
|
|
69
|
+
columnKey: 'User',
|
|
70
|
+
placeholder: 'Search users...',
|
|
71
|
+
options: []
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'sites',
|
|
75
|
+
type: 'select',
|
|
76
|
+
columnKey: 'Site',
|
|
77
|
+
placeholder: 'Sites',
|
|
78
|
+
options: siteOptions
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
id: 'status',
|
|
82
|
+
type: 'select',
|
|
83
|
+
columnKey: 'User Upgrade Status',
|
|
84
|
+
placeholder: 'Upgrade Status',
|
|
85
|
+
options: statusOptions
|
|
86
|
+
}
|
|
87
|
+
];
|
|
88
|
+
}
|
|
89
|
+
/** Whether the number of selected elements matches the total number of rows. */
|
|
90
|
+
isAllSelected() {
|
|
91
|
+
const numSelected = this.selection.selected.length;
|
|
92
|
+
const numRows = this.data?.data.length ?? 0;
|
|
93
|
+
return numSelected === numRows;
|
|
94
|
+
}
|
|
95
|
+
/** Selects all rows if they are not all selected; otherwise clear selection. */
|
|
96
|
+
masterToggle() {
|
|
97
|
+
this.isAllSelected() ?
|
|
98
|
+
this.selection.clear() :
|
|
99
|
+
this.data?.data.forEach(row => this.selection.select(row));
|
|
100
|
+
}
|
|
101
|
+
upgradeUser(user) {
|
|
102
|
+
this.userUpgradeService.bulkUpgrade([user]);
|
|
103
|
+
}
|
|
104
|
+
upgradeSelectedUsers() {
|
|
105
|
+
this.userUpgradeService.bulkUpgrade(this.selection.selected);
|
|
106
|
+
}
|
|
107
|
+
onFilter(filterEvent) {
|
|
108
|
+
const { key, value } = filterEvent;
|
|
109
|
+
let filterValue;
|
|
110
|
+
if (value && value.value !== undefined) {
|
|
111
|
+
filterValue = value.value;
|
|
112
|
+
}
|
|
113
|
+
else if (value && value.target) {
|
|
114
|
+
filterValue = value.target.value;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
filterValue = value;
|
|
118
|
+
}
|
|
119
|
+
// Handle "All" option or empty values - remove the filter
|
|
120
|
+
if (filterValue === 'all' || !filterValue || filterValue === '') {
|
|
121
|
+
delete this.activeFilters[key];
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
this.activeFilters[key] = filterValue;
|
|
125
|
+
}
|
|
126
|
+
this.applyFilters();
|
|
127
|
+
}
|
|
128
|
+
setupCustomFilter() {
|
|
129
|
+
this.data.filterPredicate = (data, filter) => {
|
|
130
|
+
const filters = JSON.parse(filter || '{}');
|
|
131
|
+
for (const [key, value] of Object.entries(filters)) {
|
|
132
|
+
if (!value)
|
|
133
|
+
continue;
|
|
134
|
+
switch (key) {
|
|
135
|
+
case 'User':
|
|
136
|
+
const searchTerm = value.toLowerCase();
|
|
137
|
+
if (!data.userName.toLowerCase().includes(searchTerm)) {
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
break;
|
|
141
|
+
case 'Site':
|
|
142
|
+
if (data.siteName !== this.getSiteNameFromValue(value)) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
break;
|
|
146
|
+
case 'User Upgrade Status':
|
|
147
|
+
if (!this.matchesUpgradeStatus(data.upgradeStatus, value)) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return true;
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
applyFilters() {
|
|
157
|
+
this.data.filter = JSON.stringify(this.activeFilters);
|
|
158
|
+
}
|
|
159
|
+
get filteredDataCount() {
|
|
160
|
+
return this.data?.filteredData?.length || 0;
|
|
161
|
+
}
|
|
162
|
+
getSiteNameFromValue(value) {
|
|
163
|
+
// Since we're now using actual site names, just convert back from slug format
|
|
164
|
+
return value.split('-').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
|
|
165
|
+
}
|
|
166
|
+
matchesUpgradeStatus(status, filterValue) {
|
|
167
|
+
// Handle direct status matching for cleaner implementation
|
|
168
|
+
return status.toLowerCase().replace(/\s+/g, '-') === filterValue.toLowerCase();
|
|
169
|
+
}
|
|
170
|
+
getStatusClass(status) {
|
|
171
|
+
switch (status.toLowerCase()) {
|
|
172
|
+
case 'ready':
|
|
173
|
+
return 'ready';
|
|
174
|
+
case 'not ready':
|
|
175
|
+
return 'not-ready';
|
|
176
|
+
case 'partial ready':
|
|
177
|
+
return 'partial-ready';
|
|
178
|
+
case 'completed':
|
|
179
|
+
return 'completed';
|
|
180
|
+
case 'failed':
|
|
181
|
+
return 'failed';
|
|
182
|
+
default:
|
|
183
|
+
return 'not-ready';
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
UserUpgradeDataTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
188
|
+
UserUpgradeDataTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserUpgradeDataTableComponent, selector: "tk-user-upgrade-data-table", inputs: { token: "token", customerId: "customerId" }, ngImport: i0, template: "<div class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button \r\n mat-button \r\n class=\"upgrade-bulk-button\" \r\n color=\"primary\" \r\n [disabled]=\"selection.selected.length === 0\" \r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox \r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox \r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready'\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"site-indicator\"></span>\r\n {{element.siteName}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"device-info\">\r\n <div *ngIf=\"element.devices.length > 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">Multiple devices</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"element.devices.length === 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devices[0]}}</span>\r\n </div>\r\n <span class=\"device-model\">{{ element.primaryExtension || 'No Extension' }}</span>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" \r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>", 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\";.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.user-upgrade-table{font-family:Inter,Inter,sans-serif;width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#1170cf}.user-upgrade-table .device-info{display:flex;align-items:center;gap:12px}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:8px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-info .device-name-wrapper .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-info .device-model{font-size:12px;color:#757575}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border:1px solid #08599c!important;color:#08599c!important;background:white!important;border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important}.user-upgrade-table .upgrade-button:hover{background-color:#e3f2fd!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}.action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark{color:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SummaryCardComponent, selector: "tk-summary-card", inputs: ["value", "status", "description"] }, { kind: "component", type: i3.TableFiltersComponent, selector: "tk-table-filters", inputs: ["filters"], outputs: ["filter"] }, { kind: "component", type: i4.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i4.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i4.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i4.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i4.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i4.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i4.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i4.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i4.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i4.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i5.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: "component", type: i6.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
189
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeDataTableComponent, decorators: [{
|
|
190
|
+
type: Component,
|
|
191
|
+
args: [{ selector: 'tk-user-upgrade-data-table', template: "<div class=\"wrapper\">\r\n <div class=\"user-upgrade-status-wrapper\">\r\n <tk-summary-card [description]=\"'Users are ready to upgrade'\" [value]=\"statusCounts['Ready']\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users are not ready'\" [value]=\"statusCounts['Not Ready']\" [status]=\"'Not Ready'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Users failed to upgrade'\" [value]=\"statusCounts['Failed']\" [status]=\"'Failed'\"></tk-summary-card>\r\n <tk-summary-card [description]=\"'Successfully upgraded'\" [value]=\"statusCounts['Completed']\" [status]=\"'Completed'\"></tk-summary-card>\r\n </div>\r\n <div class=\"table-action-panel\">\r\n <tk-table-filters *ngIf=\"filters.length > 0\" [filters]=\"filters\" (filter)=\"onFilter($event)\"></tk-table-filters>\r\n <div class=\"action-wrapper\">\r\n <span>{{filteredDataCount}} Users</span>\r\n <button \r\n mat-button \r\n class=\"upgrade-bulk-button\" \r\n color=\"primary\" \r\n [disabled]=\"selection.selected.length === 0\" \r\n (click)=\"upgradeSelectedUsers()\">\r\n Upgrade {{ selection.selected.length === 0 ? '' : '(' + selection.selected.length + ')' }}\r\n </button>\r\n </div>\r\n </div>\r\n <table mat-table [dataSource]=\"data\" class=\"user-upgrade-table\">\r\n\r\n <!-- Checkbox Column -->\r\n <ng-container matColumnDef=\"select\">\r\n <th mat-header-cell *matHeaderCellDef>\r\n <mat-checkbox \r\n (change)=\"$event ? masterToggle() : null\"\r\n [checked]=\"selection.hasValue() && isAllSelected()\"\r\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n <mat-checkbox \r\n (click)=\"$event.stopPropagation()\"\r\n (change)=\"$event ? selection.toggle(row) : null\"\r\n [checked]=\"selection.isSelected(row)\"\r\n [disabled]=\"STATUS_ENTRIES[row.upgradeStatus] !== 'Ready'\"\r\n class=\"custom-checkbox\">\r\n </mat-checkbox>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Column -->\r\n <ng-container matColumnDef=\"user\">\r\n <th mat-header-cell *matHeaderCellDef>User</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"user-info\">\r\n <div class=\"user-name\">{{element.userName}}</div>\r\n <div class=\"user-email\">{{element.userName}}</div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Site Column -->\r\n <ng-container matColumnDef=\"site\">\r\n <th mat-header-cell *matHeaderCellDef>Site</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"site-info\">\r\n <span class=\"site-indicator\"></span>\r\n {{element.siteName}}\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Device Column -->\r\n <ng-container matColumnDef=\"device\">\r\n <th mat-header-cell *matHeaderCellDef>Device</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"device-info\">\r\n <div *ngIf=\"element.devices.length > 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">Multiple devices</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"element.devices.length === 1\">\r\n <div class=\"device-name-wrapper\">\r\n <span class=\"device-indicator\"></span>\r\n <span class=\"device-name\">{{element.devices[0]}}</span>\r\n </div>\r\n <span class=\"device-model\">{{ element.primaryExtension || 'No Extension' }}</span>\r\n </div>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dial Plan Status Column -->\r\n <ng-container matColumnDef=\"dialPlanStatus\">\r\n <th mat-header-cell *matHeaderCellDef>Dial Plan Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.dialPlanStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.dialPlanStatus]}}</span>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- Dependencies Column -->\r\n <ng-container matColumnDef=\"dependencies\">\r\n <th mat-header-cell *matHeaderCellDef>Dependencies</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'Dependencies found'\" class=\"dependencies-text\">{{DEPENDENCIES_STATUS[element.dependenciesStatus]}}</span>\r\n <span *ngIf=\"DEPENDENCIES_STATUS[element.dependenciesStatus] === 'No dependencies'\">\u2014</span>\r\n </td>\r\n </ng-container>\r\n\r\n <!-- User Upgrade Status Column -->\r\n <ng-container matColumnDef=\"userUpgradeStatus\">\r\n <th mat-header-cell *matHeaderCellDef>User Upgrade Status</th>\r\n <td mat-cell *matCellDef=\"let element\">\r\n <div class=\"upgrade-status-cell\">\r\n <ng-container *ngIf=\"STATUS_ENTRIES[element.upgradeStatus] === 'Ready'; else statusBlock\">\r\n <button mat-button color=\"primary\" class=\"upgrade-button\" (click)=\"upgradeUser(element)\">Upgrade</button>\r\n </ng-container>\r\n <ng-template #statusBlock>\r\n <div class=\"status-info\">\r\n <span class=\"status-indicator\" [ngClass]=\"getStatusClass(element.upgradeStatus)\"></span>\r\n <span>{{STATUS_ENTRIES[element.upgradeStatus]}}</span>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" \r\n [class.selected-row]=\"selection.isSelected(row)\"></tr>\r\n </table>\r\n</div>", 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\";.wrapper{display:flex;flex-direction:column;gap:1rem}.user-upgrade-status-wrapper{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.user-upgrade-table{font-family:Inter,Inter,sans-serif;width:100%;background:white;border-radius:8px;overflow:hidden;font-size:14px}.user-upgrade-table .mat-header-row{font-size:12px;height:35px}.user-upgrade-table .mat-cell{border-bottom:1px solid #d6d6d6}.user-upgrade-table .mat-header-cell{border-bottom:1px solid #afafaf}.user-upgrade-table .mat-row{transition:background-color .2s ease}.user-upgrade-table .mat-row:hover{background-color:#f8f9fa}.user-upgrade-table .mat-row.selected-row{background-color:#08599c1a}.user-upgrade-table .user-info .user-name{font-weight:500;color:#212121}.user-upgrade-table .user-info .user-email{font-size:12px;color:#757575}.user-upgrade-table .site-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .site-info .site-indicator{width:8px;height:8px;border-radius:50%;background-color:#1170cf}.user-upgrade-table .device-info{display:flex;align-items:center;gap:12px}.user-upgrade-table .device-info .device-name-wrapper{display:flex;align-items:center;gap:8px}.user-upgrade-table .device-info .device-name-wrapper .device-name{font-weight:500;color:#212121}.user-upgrade-table .device-info .device-name-wrapper .device-indicator{width:8px;height:8px;border-radius:50%;background-color:#f8cd00}.user-upgrade-table .device-info .device-model{font-size:12px;color:#757575}.user-upgrade-table .status-info{display:flex;align-items:center;gap:8px}.user-upgrade-table .status-info .status-indicator{width:8px;height:8px;border-radius:50%}.user-upgrade-table .status-info .status-indicator.ready{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.partial-ready{background-color:#f8cd00}.user-upgrade-table .status-info .status-indicator.not-ready{background-color:#9e9e9e}.user-upgrade-table .status-info .status-indicator.completed{background-color:#1d805f}.user-upgrade-table .status-info .status-indicator.failed{background-color:#f23933}.user-upgrade-table .dependencies-text{font-size:12px;background-color:#ffe9e9;padding:.25rem .5rem;border-radius:3px;color:#000}.user-upgrade-table .upgrade-status-cell{display:flex;align-items:center;justify-content:flex-start}.user-upgrade-table .upgrade-button{border:1px solid #08599c!important;color:#08599c!important;background:white!important;border-radius:20px!important;font-size:14px!important;font-style:normal!important;font-weight:500!important;height:32px!important;display:flex!important;align-items:center!important;justify-content:center!important}.user-upgrade-table .upgrade-button:hover{background-color:#e3f2fd!important}.user-upgrade-table .custom-checkbox .mdc-checkbox{padding:8px}.table-action-panel{width:100%;display:flex;justify-content:flex-start;gap:1rem}.action-wrapper{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem}.upgrade-bulk-button{border:1px solid #000!important;color:#fff!important;background:#000!important;border-radius:20px!important;padding:0 1rem!important;font-size:14px!important;font-style:normal!important;font-weight:400!important;height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important}.upgrade-bulk-button:hover{background-color:#212121!important}.upgrade-bulk-button:disabled{background-color:#888!important;color:#fff!important;cursor:not-allowed!important;border-color:#888!important;opacity:.25!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checked.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#08599c!important;border-color:#08599c!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-background{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-ripple-element{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent:focus .mat-checkbox-background{background-color:#08599c1a!important}:host ::ng-deep .user-upgrade-table .mat-checkbox.mat-accent .mat-checkbox-frame{border-color:#08599c99!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark{color:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-checkmark-path{stroke:#fff!important}:host ::ng-deep .user-upgrade-table .mat-checkbox-mixedmark{border-color:#fff!important}\n"] }]
|
|
192
|
+
}], propDecorators: { token: [{
|
|
193
|
+
type: Input
|
|
194
|
+
}], customerId: [{
|
|
195
|
+
type: Input
|
|
196
|
+
}] } });
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL2RpMm10L3dpZGdldHMvdXNlci11cGdyYWRlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC93aWRnZXRzL3VzZXItdXBncmFkZS91c2VyLXVwZ3JhZGUtZGF0YS10YWJsZS91c2VyLXVwZ3JhZGUtZGF0YS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBVSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBUWxFLE1BQU0sT0FBTyw2QkFBNkI7SUFOMUM7UUFPWSxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNoRCxlQUFVLEdBQUcsTUFBTSxDQUFD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S0FBYTtRQUN0Qyw4RUFBOEU7UUFDOUUsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQy9DLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDNUQsMkRBQTJEO1FBQzNELE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25GLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUN6QixRQUFRLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMxQixLQUFLLE9BQU87Z0JBQ1IsT0FBTyxPQUFPLENBQUM7WUFDbkIsS0FBSyxXQUFXO2dCQUNaLE9BQU8sV0FBVyxDQUFDO1lBQ3ZCLEtBQUssZUFBZTtnQkFDaEIsT0FBTyxlQUFlLENBQUM7WUFDM0IsS0FBSyxXQUFXO2dCQUNaLE9BQU8sV0FBVyxDQUFDO1lBQ3ZCLEtBQUssUUFBUTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNwQjtnQkFDSSxPQUFPLFdBQVcsQ0FBQztTQUMxQjtJQUNMLENBQUM7OzJIQXJNUSw2QkFBNkI7K0dBQTdCLDZCQUE2Qix3SENuQjFDLGt6TkFrSU07NEZEL0dPLDZCQUE2QjtrQkFOekMsU0FBUzsrQkFDSSw0QkFBNEI7OEJBWTdCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIGluamVjdCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3RhYmxlXCI7XHJcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC90eXBlcy9kYXRhLXRhYmxlXCI7XHJcbmltcG9ydCB7IFRhYmxlRmlsdGVyIH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC90eXBlcy90YWJsZS9maWx0ZXJcIjtcclxuaW1wb3J0IHsgVXBncmFkZU92ZXJ2aWV3U2VydmljZSB9IGZyb20gXCIuLi8uLi91cGdyYWRlLW92ZXJ2aWV3L3VwZ3JhZGUtb3ZlcnZpZXcuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXNlclVwZ3JhZGVTZXJ2aWNlIH0gZnJvbSBcIi4uL3VzZXItdXBncmFkZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERFUEVOREVOQ0lFU19TVEFUVVMsIFN0YXR1cywgU1RBVFVTX0VOVFJJRVMgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkL3R5cGVzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBVc2VyVXBncmFkZVJlY29yZCB9IGZyb20gXCIuLi90eXBlcy91c2VyLXVwZ3JhZGVcIjtcclxuaW1wb3J0IHsgQVBJU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvYXBpLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0ay11c2VyLXVwZ3JhZGUtZGF0YS10YWJsZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci11cGdyYWRlLWRhdGEtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIC8vIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLlNoYWRvd0RvbVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclVwZ3JhZGVEYXRhVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICAgIHByaXZhdGUgdXNlclVwZ3JhZGVTZXJ2aWNlID0gaW5qZWN0KFVzZXJVcGdyYWRlU2VydmljZSk7XHJcbiAgICBwcml2YXRlIGFwaVNlcnZpY2UgPSBpbmplY3QoQVBJU2VydmljZSk7XHJcbiAgICByZWFkb25seSBTVEFUVVNfRU5UUklFUyA9IFNUQVRVU19FTlRSSUVTO1xyXG4gICAgcmVhZG9ubHkgREVQRU5ERU5DSUVTX1NUQVRVUyA9IERFUEVOREVOQ0lFU19TVEFUVVM7XHJcblxyXG4gICAgQElucHV0KCkgdG9rZW4hOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBjdXN0b21lcklkITogc3RyaW5nO1xyXG5cclxuICAgIGNvbHVtbnMhOiBUYWJsZUNvbHVtbltdO1xyXG4gICAgZGF0YSE6IE1hdFRhYmxlRGF0YVNvdXJjZTxVc2VyVXBncmFkZVJlY29yZD47XHJcbiAgICBkaXNwbGF5ZWRDb2x1bW5zOiBzdHJpbmdbXSA9IFsnc2VsZWN0JywgJ3VzZXInLCAnc2l0ZScsICdkZXZpY2UnLCAnZGlhbFBsYW5TdGF0dXMnLCAnZGVwZW5kZW5jaWVzJywgJ3VzZXJVcGdyYWRlU3RhdHVzJ107XHJcbiAgICBzZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VXNlclVwZ3JhZGVSZWNvcmQ+KHRydWUsIFtdKTtcclxuICAgIGZpbHRlcnM6IFRhYmxlRmlsdGVyW10gPSBbXTtcclxuXHJcbiAgICBzdGF0dXNDb3VudHM6IGFueSA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgYWN0aXZlRmlsdGVyczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XHJcbiAgICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuY3VzdG9tZXJJZCA9IHRoaXMuY3VzdG9tZXJJZDtcclxuICAgICAgICBcclxuICAgICAgICB0aGlzLnVzZXJVcGdyYWRlU2VydmljZS5nZXRVc2VyVXBncmFkZVJlY29yZHMoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlY29yZHMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UocmVjb3Jkcyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldHVwQ3VzdG9tRmlsdGVyKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRpYWxpemVGaWx0ZXJzKHJlY29yZHMpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuZ2V0VXNlclVwZ3JhZGVTdGF0dXNDb3VudHMoKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHN0YXR1c0NvdW50cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXNDb3VudHNbJ1JlYWR5J10gPSBzdGF0dXNDb3VudHNbJ1JFQURZJ10gfHwgMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydOb3QgUmVhZHknXSA9IHN0YXR1c0NvdW50c1snTk9UX1JFQURZJ10gfHwgMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydDb21wbGV0ZWQnXSA9IHN0YXR1c0NvdW50c1snQ09NUExFVEVEJ10gfHwgMDtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzQ291bnRzWydGYWlsZWQnXSA9IHN0YXR1c0NvdW50c1snRkFJTEVEJ10gfHwgMDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUZpbHRlcnMocmVjb3JkczogYW55W10pOiB2b2lkIHtcclxuICAgICAgICAvLyBFeHRyYWN0IHVuaXF1ZSBzaXRlcyBmcm9tIGFjdHVhbCBkYXRhXHJcbiAgICAgICAgY29uc3QgdW5pcXVlU2l0ZXMgPSBbLi4ubmV3IFNldChyZWNvcmRzLm1hcChyZWNvcmQgPT4gcmVjb3JkLnNpdGVOYW1lKSldO1xyXG4gICAgICAgIGNvbnN0IHNpdGVPcHRpb25zID0gdW5pcXVlU2l0ZXMubWFwKHNpdGUgPT4gKHtcclxuICAgICAgICAgICAgbGFiZWw6IHNpdGUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBzaXRlLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpXHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICAvLyBFeHRyYWN0IHVuaXF1ZSBzdGF0dXNlcyBmcm9tIGFjdHVhbCBkYXRhXHJcbiAgICAgICAgY29uc3QgdW5pcXVlU3RhdHVzZXMgPSBbLi4ubmV3IFNldChyZWNvcmRzLm1hcChyZWNvcmQgPT4gcmVjb3JkLnVwZ3JhZGVTdGF0dXMpKV07XHJcbiAgICAgICAgY29uc3Qgc3RhdHVzT3B0aW9ucyA9IHVuaXF1ZVN0YXR1c2VzLm1hcChzdGF0dXMgPT4gKHtcclxuICAgICAgICAgICAgbGFiZWw6IFNUQVRVU19FTlRSSUVTW3N0YXR1c10sXHJcbiAgICAgICAgICAgIHZhbHVlOiBzdGF0dXMudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJylcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMuZmlsdGVycyA9IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6ICd1c2VyTmFtZScsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VhcmNoJyxcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleTogJ1VzZXInLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdTZWFyY2ggdXNlcnMuLi4nLFxyXG4gICAgICAgICAgICAgICAgb3B0aW9uczogW11cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgaWQ6ICdzaXRlcycsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleTogJ1NpdGUnLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdTaXRlcycsXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBzaXRlT3B0aW9uc1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBpZDogJ3N0YXR1cycsXHJcbiAgICAgICAgICAgICAgICB0eXBlOiAnc2VsZWN0JyxcclxuICAgICAgICAgICAgICAgIGNvbHVtbktleTogJ1VzZXIgVXBncmFkZSBTdGF0dXMnLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdVcGdyYWRlIFN0YXR1cycsXHJcbiAgICAgICAgICAgICAgICBvcHRpb25zOiBzdGF0dXNPcHRpb25zXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBXaGV0aGVyIHRoZSBudW1iZXIgb2Ygc2VsZWN0ZWQgZWxlbWVudHMgbWF0Y2hlcyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3MuICovXHJcbiAgICBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IG51bVJvd3MgPSB0aGlzLmRhdGE/LmRhdGEubGVuZ3RoID8/IDA7XHJcbiAgICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBTZWxlY3RzIGFsbCByb3dzIGlmIHRoZXkgYXJlIG5vdCBhbGwgc2VsZWN0ZWQ7IG90aGVyd2lzZSBjbGVhciBzZWxlY3Rpb24uICovXHJcbiAgICBtYXN0ZXJUb2dnbGUoKSB7XHJcbiAgICAgICAgdGhpcy5pc0FsbFNlbGVjdGVkKCkgP1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhcigpIDpcclxuICAgICAgICAgICAgdGhpcy5kYXRhPy5kYXRhLmZvckVhY2gocm93ID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpKTtcclxuICAgIH1cclxuXHJcbiAgICB1cGdyYWRlVXNlcih1c2VyOiBVc2VyVXBncmFkZVJlY29yZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudXNlclVwZ3JhZGVTZXJ2aWNlLmJ1bGtVcGdyYWRlKFt1c2VyXSlcclxuICAgIH1cclxuICAgIFxyXG4gICAgdXBncmFkZVNlbGVjdGVkVXNlcnMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy51c2VyVXBncmFkZVNlcnZpY2UuYnVsa1VwZ3JhZGUodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uRmlsdGVyKGZpbHRlckV2ZW50OiB7IGtleTogc3RyaW5nLCB2YWx1ZTogYW55IH0pIHtcclxuICAgICAgICBjb25zdCB7IGtleSwgdmFsdWUgfSA9IGZpbHRlckV2ZW50O1xyXG5cclxuICAgICAgICBsZXQgZmlsdGVyVmFsdWU6IGFueTtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUudmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdmFsdWUudGFyZ2V0KSB7XHJcbiAgICAgICAgICAgIGZpbHRlclZhbHVlID0gdmFsdWUudGFyZ2V0LnZhbHVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbHRlclZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBIYW5kbGUgXCJBbGxcIiBvcHRpb24gb3IgZW1wdHkgdmFsdWVzIC0gcmVtb3ZlIHRoZSBmaWx0ZXJcclxuICAgICAgICBpZiAoZmlsdGVyVmFsdWUgPT09ICdhbGwnIHx8ICFmaWx0ZXJWYWx1ZSB8fCBmaWx0ZXJWYWx1ZSA9PT0gJycpIHtcclxuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYWN0aXZlRmlsdGVyc1trZXldO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlRmlsdGVyc1trZXldID0gZmlsdGVyVmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0dXBDdXN0b21GaWx0ZXIoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLmZpbHRlclByZWRpY2F0ZSA9IChkYXRhOiBhbnksIGZpbHRlcjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcnMgPSBKU09OLnBhcnNlKGZpbHRlciB8fCAne30nKTtcclxuXHJcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGtleSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1VzZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWFyY2hUZXJtID0gKHZhbHVlIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhLnVzZXJOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdTaXRlJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc2l0ZU5hbWUgIT09IHRoaXMuZ2V0U2l0ZU5hbWVGcm9tVmFsdWUodmFsdWUgYXMgc3RyaW5nKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ1VzZXIgVXBncmFkZSBTdGF0dXMnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMubWF0Y2hlc1VwZ3JhZGVTdGF0dXMoZGF0YS51cGdyYWRlU3RhdHVzLCB2YWx1ZSBhcyBzdHJpbmcpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhcHBseUZpbHRlcnMoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLmZpbHRlciA9IEpTT04uc3RyaW5naWZ5KHRoaXMuYWN0aXZlRmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGZpbHRlcmVkRGF0YUNvdW50KCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YT8uZmlsdGVyZWREYXRhPy5sZW5ndGggfHwgMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldFNpdGVOYW1lRnJvbVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIC8vIFNpbmNlIHdlJ3JlIG5vdyB1c2luZyBhY3R1YWwgc2l0ZSBuYW1lcywganVzdCBjb252ZXJ0IGJhY2sgZnJvbSBzbHVnIGZvcm1hdFxyXG4gICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLScpLm1hcCh3b3JkID0+XHJcbiAgICAgICAgICAgIHdvcmQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB3b3JkLnNsaWNlKDEpXHJcbiAgICAgICAgKS5qb2luKCcgJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBtYXRjaGVzVXBncmFkZVN0YXR1cyhzdGF0dXM6IHN0cmluZywgZmlsdGVyVmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIC8vIEhhbmRsZSBkaXJlY3Qgc3RhdHVzIG1hdGNoaW5nIGZvciBjbGVhbmVyIGltcGxlbWVudGF0aW9uXHJcbiAgICAgICAgcmV0dXJuIHN0YXR1cy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJy0nKSA9PT0gZmlsdGVyVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRTdGF0dXNDbGFzcyhzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChzdGF0dXMudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAgICAgICBjYXNlICdyZWFkeSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3JlYWR5JztcclxuICAgICAgICAgICAgY2FzZSAnbm90IHJlYWR5JzpcclxuICAgICAgICAgICAgICAgIHJldHVybiAnbm90LXJlYWR5JztcclxuICAgICAgICAgICAgY2FzZSAncGFydGlhbCByZWFkeSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3BhcnRpYWwtcmVhZHknO1xyXG4gICAgICAgICAgICBjYXNlICdjb21wbGV0ZWQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdjb21wbGV0ZWQnO1xyXG4gICAgICAgICAgICBjYXNlICdmYWlsZWQnOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdmYWlsZWQnO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICdub3QtcmVhZHknO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSIsIjxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXNlci11cGdyYWRlLXN0YXR1cy13cmFwcGVyXCI+XHJcbiAgICAgICAgPHRrLXN1bW1hcnktY2FyZCBbZGVzY3JpcHRpb25dPVwiJ1VzZXJzIGFyZSByZWFkeSB0byB1cGdyYWRlJ1wiIFt2YWx1ZV09XCJzdGF0dXNDb3VudHNbJ1JlYWR5J11cIj48L3RrLXN1bW1hcnktY2FyZD5cclxuICAgICAgICA8dGstc3VtbWFyeS1jYXJkIFtkZXNjcmlwdGlvbl09XCInVXNlcnMgYXJlIG5vdCByZWFkeSdcIiBbdmFsdWVdPVwic3RhdHVzQ291bnRzWydOb3QgUmVhZHknXVwiIFtzdGF0dXNdPVwiJ05vdCBSZWFkeSdcIj48L3RrLXN1bW1hcnktY2FyZD5cclxuICAgICAgICA8dGstc3VtbWFyeS1jYXJkIFtkZXNjcmlwdGlvbl09XCInVXNlcnMgZmFpbGVkIHRvIHVwZ3JhZGUnXCIgW3ZhbHVlXT1cInN0YXR1c0NvdW50c1snRmFpbGVkJ11cIiBbc3RhdHVzXT1cIidGYWlsZWQnXCI+PC90ay1zdW1tYXJ5LWNhcmQ+XHJcbiAgICAgICAgPHRrLXN1bW1hcnktY2FyZCBbZGVzY3JpcHRpb25dPVwiJ1N1Y2Nlc3NmdWxseSB1cGdyYWRlZCdcIiBbdmFsdWVdPVwic3RhdHVzQ291bnRzWydDb21wbGV0ZWQnXVwiIFtzdGF0dXNdPVwiJ0NvbXBsZXRlZCdcIj48L3RrLXN1bW1hcnktY2FyZD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInRhYmxlLWFjdGlvbi1wYW5lbFwiPlxyXG4gICAgICAgIDx0ay10YWJsZS1maWx0ZXJzICpuZ0lmPVwiZmlsdGVycy5sZW5ndGggPiAwXCIgW2ZpbHRlcnNdPVwiZmlsdGVyc1wiIChmaWx0ZXIpPVwib25GaWx0ZXIoJGV2ZW50KVwiPjwvdGstdGFibGUtZmlsdGVycz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3tmaWx0ZXJlZERhdGFDb3VudH19IFVzZXJzPC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uIFxyXG4gICAgICAgICAgICAgICAgbWF0LWJ1dHRvbiBcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXBncmFkZS1idWxrLWJ1dHRvblwiIFxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gMFwiIFxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZ3JhZGVTZWxlY3RlZFVzZXJzKClcIj5cclxuICAgICAgICAgICAgICAgIFVwZ3JhZGUge3sgc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCA/ICcnIDogJygnICsgc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aCArICcpJyB9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHRhYmxlIG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJkYXRhXCIgY2xhc3M9XCJ1c2VyLXVwZ3JhZGUtdGFibGVcIj5cclxuXHJcbiAgICAgICAgPCEtLSBDaGVja2JveCBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzZWxlY3RcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5cclxuICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJUb2dnbGUoKSA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGlvbi5oYXNWYWx1ZSgpICYmIGlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uLmhhc1ZhbHVlKCkgJiYgIWlzQWxsU2VsZWN0ZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgcm93XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNoZWNrYm94IFxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiJGV2ZW50ID8gc2VsZWN0aW9uLnRvZ2dsZShyb3cpIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwic2VsZWN0aW9uLmlzU2VsZWN0ZWQocm93KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlNUQVRVU19FTlRSSUVTW3Jvdy51cGdyYWRlU3RhdHVzXSAhPT0gJ1JlYWR5J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXN0b20tY2hlY2tib3hcIj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFVzZXIgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlclwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlVzZXI8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWVcIj57e2VsZW1lbnQudXNlck5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWVtYWlsXCI+e3tlbGVtZW50LnVzZXJOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFNpdGUgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwic2l0ZVwiPlxyXG4gICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPlNpdGU8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpdGUtaW5mb1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2l0ZS1pbmRpY2F0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAge3tlbGVtZW50LnNpdGVOYW1lfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIERldmljZSBDb2x1bW4gLS0+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJkZXZpY2VcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5EZXZpY2U8L3RoPlxyXG4gICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldmljZS1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVsZW1lbnQuZGV2aWNlcy5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXZpY2UtbmFtZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldmljZS1pbmRpY2F0b3JcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRldmljZS1uYW1lXCI+TXVsdGlwbGUgZGV2aWNlczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVsZW1lbnQuZGV2aWNlcy5sZW5ndGggPT09IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldmljZS1uYW1lLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV2aWNlLWluZGljYXRvclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGV2aWNlLW5hbWVcIj57e2VsZW1lbnQuZGV2aWNlc1swXX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXZpY2UtbW9kZWxcIj57eyBlbGVtZW50LnByaW1hcnlFeHRlbnNpb24gfHwgJ05vIEV4dGVuc2lvbicgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBEaWFsIFBsYW4gU3RhdHVzIENvbHVtbiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRpYWxQbGFuU3RhdHVzXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+RGlhbCBQbGFuIFN0YXR1czwvdGg+XHJcbiAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWluZm9cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy1pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJnZXRTdGF0dXNDbGFzcyhlbGVtZW50LmRpYWxQbGFuU3RhdHVzKVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e1NUQVRVU19FTlRSSUVTW2VsZW1lbnQuZGlhbFBsYW5TdGF0dXNdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBEZXBlbmRlbmNpZXMgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGVwZW5kZW5jaWVzXCI+XHJcbiAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+RGVwZW5kZW5jaWVzPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiREVQRU5ERU5DSUVTX1NUQVRVU1tlbGVtZW50LmRlcGVuZGVuY2llc1N0YXR1c10gPT09ICdEZXBlbmRlbmNpZXMgZm91bmQnXCIgY2xhc3M9XCJkZXBlbmRlbmNpZXMtdGV4dFwiPnt7REVQRU5ERU5DSUVTX1NUQVRVU1tlbGVtZW50LmRlcGVuZGVuY2llc1N0YXR1c119fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiREVQRU5ERU5DSUVTX1NUQVRVU1tlbGVtZW50LmRlcGVuZGVuY2llc1N0YXR1c10gPT09ICdObyBkZXBlbmRlbmNpZXMnXCI+4oCUPC9zcGFuPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIFVzZXIgVXBncmFkZSBTdGF0dXMgQ29sdW1uIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlclVwZ3JhZGVTdGF0dXNcIj5cclxuICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj5Vc2VyIFVwZ3JhZGUgU3RhdHVzPC90aD5cclxuICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGdyYWRlLXN0YXR1cy1jZWxsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlNUQVRVU19FTlRSSUVTW2VsZW1lbnQudXBncmFkZVN0YXR1c10gPT09ICdSZWFkeSc7IGVsc2Ugc3RhdHVzQmxvY2tcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIGNsYXNzPVwidXBncmFkZS1idXR0b25cIiAoY2xpY2spPVwidXBncmFkZVVzZXIoZWxlbWVudClcIj5VcGdyYWRlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdGF0dXNCbG9jaz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0YXR1cy1pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJnZXRTdGF0dXNDbGFzcyhlbGVtZW50LnVwZ3JhZGVTdGF0dXMpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tTVEFUVVNfRU5UUklFU1tlbGVtZW50LnVwZ3JhZGVTdGF0dXNdfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIiBcclxuICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkLXJvd109XCJzZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpXCI+PC90cj5cclxuICAgIDwvdGFibGU+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { NgModule } from "@angular/core";
|
|
2
|
+
import { UserUpgradeDataTableComponent } from "./user-upgrade-data-table/user-upgrade-data-table.component";
|
|
3
|
+
import { CommonModule } from "@angular/common";
|
|
4
|
+
import { MatButtonModule } from "@angular/material/button";
|
|
5
|
+
import { MatTableModule } from "@angular/material/table";
|
|
6
|
+
import { SharedModule } from "../../shared/shared.module";
|
|
7
|
+
import { MatCheckboxModule } from "@angular/material/checkbox";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class UserUpgradeModule {
|
|
10
|
+
}
|
|
11
|
+
UserUpgradeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
UserUpgradeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, declarations: [UserUpgradeDataTableComponent], imports: [CommonModule,
|
|
13
|
+
SharedModule,
|
|
14
|
+
MatTableModule,
|
|
15
|
+
MatButtonModule,
|
|
16
|
+
MatCheckboxModule], exports: [UserUpgradeDataTableComponent] });
|
|
17
|
+
UserUpgradeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, imports: [CommonModule,
|
|
18
|
+
SharedModule,
|
|
19
|
+
MatTableModule,
|
|
20
|
+
MatButtonModule,
|
|
21
|
+
MatCheckboxModule] });
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeModule, decorators: [{
|
|
23
|
+
type: NgModule,
|
|
24
|
+
args: [{
|
|
25
|
+
declarations: [
|
|
26
|
+
UserUpgradeDataTableComponent
|
|
27
|
+
],
|
|
28
|
+
imports: [
|
|
29
|
+
CommonModule,
|
|
30
|
+
SharedModule,
|
|
31
|
+
MatTableModule,
|
|
32
|
+
MatButtonModule,
|
|
33
|
+
MatCheckboxModule
|
|
34
|
+
],
|
|
35
|
+
exports: [
|
|
36
|
+
UserUpgradeDataTableComponent
|
|
37
|
+
]
|
|
38
|
+
}]
|
|
39
|
+
}] });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC93aWRnZXRzL3VzZXItdXBncmFkZS91c2VyLXVwZ3JhZGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDNUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQWlCL0QsTUFBTSxPQUFPLGlCQUFpQjs7K0dBQWpCLGlCQUFpQjtnSEFBakIsaUJBQWlCLGlCQWJ0Qiw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLFlBQVk7UUFDWixjQUFjO1FBQ2QsZUFBZTtRQUNmLGlCQUFpQixhQUdqQiw2QkFBNkI7Z0hBR3hCLGlCQUFpQixZQVZ0QixZQUFZO1FBQ1osWUFBWTtRQUNaLGNBQWM7UUFDZCxlQUFlO1FBQ2YsaUJBQWlCOzRGQU1aLGlCQUFpQjtrQkFmN0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsNkJBQTZCO3FCQUNoQztvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixpQkFBaUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDTCw2QkFBNkI7cUJBQ2hDO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyVXBncmFkZURhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlL3VzZXItdXBncmFkZS1kYXRhLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b25cIjtcclxuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlXCI7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94XCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgVXNlclVwZ3JhZGVEYXRhVGFibGVDb21wb25lbnRcclxuICAgIF0sXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcclxuICAgICAgICBNYXRUYWJsZU1vZHVsZSxcclxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGVcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgVXNlclVwZ3JhZGVEYXRhVGFibGVDb21wb25lbnRcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJVcGdyYWRlTW9kdWxlIHt9Il19
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { inject, Injectable } from "@angular/core";
|
|
2
|
+
import { catchError, map, of } from "rxjs";
|
|
3
|
+
import { API } from "../../api/api.endpoints";
|
|
4
|
+
import { APIService } from "../../shared/services/api.service";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class UserUpgradeService {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.apiService = inject(APIService);
|
|
9
|
+
}
|
|
10
|
+
// TODO: Impl the user upgrade logic here
|
|
11
|
+
bulkUpgrade(users) {
|
|
12
|
+
const entities = users.map(record => ({ cucmId: record.cucmId, entityId: record.userId }));
|
|
13
|
+
const customerId = users[0].customerId;
|
|
14
|
+
const siteId = users[0].siteId;
|
|
15
|
+
const body = {
|
|
16
|
+
customerId,
|
|
17
|
+
siteId,
|
|
18
|
+
entities: {
|
|
19
|
+
'PERSON': entities
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
console.log(body);
|
|
23
|
+
// This is not done yet...
|
|
24
|
+
return this.apiService.post(API.USER_UPGRADE.UPGRADE_USER.replace(':siteId', siteId).replace(':userId', users[0].userId), body, {}).pipe(catchError((err) => of(err)));
|
|
25
|
+
}
|
|
26
|
+
getUserUpgradeStatusCounts() {
|
|
27
|
+
return this.apiService.fetch(API.USER_UPGRADE.GET_USERS_UPGRADE_STATUS_COUNTS.replace(':customerId', this.customerId));
|
|
28
|
+
}
|
|
29
|
+
getUserUpgradeRecords() {
|
|
30
|
+
return this.apiService.fetch(API.USER_UPGRADE.GET_USERS_UPGRADE_DATA.replace(':customerId', this.customerId)).pipe(map((resp) => {
|
|
31
|
+
return resp.content;
|
|
32
|
+
// This was added because of mapping issues with BE resp;
|
|
33
|
+
// return resp.content.map((record: UserUpgradeRecord) => ({
|
|
34
|
+
// userId: record.userId,
|
|
35
|
+
// userName: record.userName,
|
|
36
|
+
// customerId: record.customerId,
|
|
37
|
+
// siteId: record.siteId,
|
|
38
|
+
// siteName: record.siteName,
|
|
39
|
+
// devices: record.devices,
|
|
40
|
+
// cucmId: record.cucmId,
|
|
41
|
+
// primaryExtension: record.primaryExtension,
|
|
42
|
+
// deviceStatus: record.deviceStatus,
|
|
43
|
+
// dialPlanStatus: record.dialPlanStatus,
|
|
44
|
+
// dependenciesStatus: record.dependenciesStatus,
|
|
45
|
+
// upgradeStatus: record.upgradeStatus
|
|
46
|
+
// } as UserUpgradeRecord));
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
UserUpgradeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
51
|
+
UserUpgradeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeService, providedIn: 'root' });
|
|
52
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserUpgradeService, decorators: [{
|
|
53
|
+
type: Injectable,
|
|
54
|
+
args: [{
|
|
55
|
+
providedIn: 'root'
|
|
56
|
+
}]
|
|
57
|
+
}] });
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci11cGdyYWRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvZGkybXQvd2lkZ2V0cy91c2VyLXVwZ3JhZGUvdXNlci11cGdyYWRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBSy9ELE1BQU0sT0FBTyxrQkFBa0I7SUFIL0I7UUFJWSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBNkQzQztJQXRERyx5Q0FBeUM7SUFDekMsV0FBVyxDQUFDLEtBQTBCO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0YsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztRQUN2QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRS9CLE1BQU0sSUFBSSxHQUFHO1lBQ1QsVUFBVTtZQUNWLE1BQU07WUFDTixRQUFRLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLFFBQVE7YUFDckI7U0FDSixDQUFDO1FBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVsQiwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDdkIsR0FBRyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDNUYsSUFBSSxFQUNKLEVBQUUsQ0FDTCxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELDBCQUEwQjtRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUN4QixHQUFHLENBQUMsWUFBWSxDQUFDLCtCQUErQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzRixDQUFDO0lBQ04sQ0FBQztJQUVELHFCQUFxQjtRQUNqQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUN4QixHQUFHLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUNsRixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNoQixPQUFPLElBQUksQ0FBQyxPQUE4QixDQUFDO1lBRTNDLHlEQUF5RDtZQUV6RCw0REFBNEQ7WUFDNUQsNkJBQTZCO1lBQzdCLGlDQUFpQztZQUNqQyxxQ0FBcUM7WUFDckMsNkJBQTZCO1lBQzdCLGlDQUFpQztZQUNqQywrQkFBK0I7WUFDL0IsNkJBQTZCO1lBQzdCLGlEQUFpRDtZQUNqRCx5Q0FBeUM7WUFDekMsNkNBQTZDO1lBQzdDLHFEQUFxRDtZQUNyRCwwQ0FBMEM7WUFDMUMsNEJBQTRCO1FBQ2hDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOztnSEE3RFEsa0JBQWtCO29IQUFsQixrQkFBa0IsY0FGZixNQUFNOzRGQUVULGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRUYWJsZURhdGFTb3VyY2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGVcIjtcclxuaW1wb3J0IHsgVXNlclVwZ3JhZGVSZWNvcmQgfSBmcm9tIFwiLi90eXBlcy91c2VyLXVwZ3JhZGVcIjtcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gXCIuLi8uLi9hcGkvYXBpLmVuZHBvaW50c1wiO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9hcGkuc2VydmljZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVc2VyVXBncmFkZVNlcnZpY2Uge1xyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFQSVNlcnZpY2UpO1xyXG5cclxuICAgIGN1c3RvbWVySWQhOiBzdHJpbmc7XHJcblxyXG4gICAgdXNlcnNEYXRhU291cmNlITogVXNlclVwZ3JhZGVSZWNvcmRbXTtcclxuICAgIGZpbHRlcmVkVXNlcnNEYXRhU291cmNlITogVXNlclVwZ3JhZGVSZWNvcmRbXTtcclxuXHJcbiAgICAvLyBUT0RPOiBJbXBsIHRoZSB1c2VyIHVwZ3JhZGUgbG9naWMgaGVyZVxyXG4gICAgYnVsa1VwZ3JhZGUodXNlcnM6IFVzZXJVcGdyYWRlUmVjb3JkW10pOiBPYnNlcnZhYmxlPHVua25vd24+IHtcclxuICAgICAgICBjb25zdCBlbnRpdGllcyA9IHVzZXJzLm1hcChyZWNvcmQgPT4gKHsgY3VjbUlkOiByZWNvcmQuY3VjbUlkLCBlbnRpdHlJZDogcmVjb3JkLnVzZXJJZCB9KSk7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tZXJJZCA9IHVzZXJzWzBdLmN1c3RvbWVySWQ7XHJcbiAgICAgICAgY29uc3Qgc2l0ZUlkID0gdXNlcnNbMF0uc2l0ZUlkO1xyXG5cclxuICAgICAgICBjb25zdCBib2R5ID0ge1xyXG4gICAgICAgICAgICBjdXN0b21lcklkLFxyXG4gICAgICAgICAgICBzaXRlSWQsXHJcbiAgICAgICAgICAgIGVudGl0aWVzOiB7XHJcbiAgICAgICAgICAgICAgICAnUEVSU09OJzogZW50aXRpZXNcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNvbnNvbGUubG9nKGJvZHkpO1xyXG4gICAgXHJcbiAgICAgICAgLy8gVGhpcyBpcyBub3QgZG9uZSB5ZXQuLi5cclxuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXHJcbiAgICAgICAgICAgIEFQSS5VU0VSX1VQR1JBREUuVVBHUkFERV9VU0VSLnJlcGxhY2UoJzpzaXRlSWQnLCBzaXRlSWQpLnJlcGxhY2UoJzp1c2VySWQnLCB1c2Vyc1swXS51c2VySWQpLFxyXG4gICAgICAgICAgICBib2R5LFxyXG4gICAgICAgICAgICB7fVxyXG4gICAgICAgICkucGlwZShjYXRjaEVycm9yKChlcnIpID0+IG9mKGVycikpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRVc2VyVXBncmFkZVN0YXR1c0NvdW50cygpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZmV0Y2goXHJcbiAgICAgICAgICAgIEFQSS5VU0VSX1VQR1JBREUuR0VUX1VTRVJTX1VQR1JBREVfU1RBVFVTX0NPVU5UUy5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIHRoaXMuY3VzdG9tZXJJZClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldFVzZXJVcGdyYWRlUmVjb3JkcygpOiBPYnNlcnZhYmxlPFVzZXJVcGdyYWRlUmVjb3JkW10+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmZldGNoKFxyXG4gICAgICAgICAgICBBUEkuVVNFUl9VUEdSQURFLkdFVF9VU0VSU19VUEdSQURFX0RBVEEucmVwbGFjZSgnOmN1c3RvbWVySWQnLCB0aGlzLmN1c3RvbWVySWQpXHJcbiAgICAgICAgKS5waXBlKG1hcCgocmVzcCkgPT4geyBcclxuICAgICAgICAgICAgcmV0dXJuIHJlc3AuY29udGVudCBhcyBVc2VyVXBncmFkZVJlY29yZFtdO1xyXG5cclxuICAgICAgICAgICAgLy8gVGhpcyB3YXMgYWRkZWQgYmVjYXVzZSBvZiBtYXBwaW5nIGlzc3VlcyB3aXRoIEJFIHJlc3A7XHJcblxyXG4gICAgICAgICAgICAvLyByZXR1cm4gcmVzcC5jb250ZW50Lm1hcCgocmVjb3JkOiBVc2VyVXBncmFkZVJlY29yZCkgPT4gKHtcclxuICAgICAgICAgICAgLy8gICAgIHVzZXJJZDogcmVjb3JkLnVzZXJJZCxcclxuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiByZWNvcmQudXNlck5hbWUsXHJcbiAgICAgICAgICAgIC8vICAgICBjdXN0b21lcklkOiByZWNvcmQuY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgLy8gICAgIHNpdGVJZDogcmVjb3JkLnNpdGVJZCxcclxuICAgICAgICAgICAgLy8gICAgIHNpdGVOYW1lOiByZWNvcmQuc2l0ZU5hbWUsXHJcbiAgICAgICAgICAgIC8vICAgICBkZXZpY2VzOiByZWNvcmQuZGV2aWNlcyxcclxuICAgICAgICAgICAgLy8gICAgIGN1Y21JZDogcmVjb3JkLmN1Y21JZCxcclxuICAgICAgICAgICAgLy8gICAgIHByaW1hcnlFeHRlbnNpb246IHJlY29yZC5wcmltYXJ5RXh0ZW5zaW9uLFxyXG4gICAgICAgICAgICAvLyAgICAgZGV2aWNlU3RhdHVzOiByZWNvcmQuZGV2aWNlU3RhdHVzLFxyXG4gICAgICAgICAgICAvLyAgICAgZGlhbFBsYW5TdGF0dXM6IHJlY29yZC5kaWFsUGxhblN0YXR1cyxcclxuICAgICAgICAgICAgLy8gICAgIGRlcGVuZGVuY2llc1N0YXR1czogcmVjb3JkLmRlcGVuZGVuY2llc1N0YXR1cyxcclxuICAgICAgICAgICAgLy8gICAgIHVwZ3JhZGVTdGF0dXM6IHJlY29yZC51cGdyYWRlU3RhdHVzXHJcbiAgICAgICAgICAgIC8vIH0gYXMgVXNlclVwZ3JhZGVSZWNvcmQpKTtcclxuICAgICAgICB9KSk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class WidgetsComponent {
|
|
4
|
+
constructor() { }
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
WidgetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
WidgetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WidgetsComponent, selector: "lib-widgets", ngImport: i0, template: `
|
|
10
|
+
<p>
|
|
11
|
+
widgets works!
|
|
12
|
+
</p>
|
|
13
|
+
`, isInline: true });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'lib-widgets', template: `
|
|
17
|
+
<p>
|
|
18
|
+
widgets works!
|
|
19
|
+
</p>
|
|
20
|
+
` }]
|
|
21
|
+
}], ctorParameters: function () { return []; } });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVlsRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLGdCQUFnQixDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzs4R0FMVSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixtREFSakI7Ozs7R0FJVDs0RkFJVSxnQkFBZ0I7a0JBVjVCLFNBQVM7K0JBQ0UsYUFBYSxZQUNiOzs7O0dBSVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItd2lkZ2V0cycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICB3aWRnZXRzIHdvcmtzIVxuICAgIDwvcD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { WidgetsComponent } from './widgets.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class WidgetsModule {
|
|
5
|
+
}
|
|
6
|
+
WidgetsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
WidgetsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule, declarations: [WidgetsComponent], exports: [WidgetsComponent] });
|
|
8
|
+
WidgetsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
declarations: [
|
|
13
|
+
WidgetsComponent
|
|
14
|
+
],
|
|
15
|
+
imports: [],
|
|
16
|
+
exports: [
|
|
17
|
+
WidgetsComponent
|
|
18
|
+
]
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvc3JjL2xpYi93aWRnZXRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOztBQWN2RCxNQUFNLE9BQU8sYUFBYTs7MkdBQWIsYUFBYTs0R0FBYixhQUFhLGlCQVJ0QixnQkFBZ0IsYUFLaEIsZ0JBQWdCOzRHQUdQLGFBQWE7NEZBQWIsYUFBYTtrQkFWekIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsRUFDUjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3FCQUNqQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBXaWRnZXRzQ29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXRzLmNvbXBvbmVudCc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBXaWRnZXRzQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFdpZGdldHNDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRzTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class WidgetsService {
|
|
4
|
+
constructor() { }
|
|
5
|
+
}
|
|
6
|
+
WidgetsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7
|
+
WidgetsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsService, providedIn: 'root' });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WidgetsService, decorators: [{
|
|
9
|
+
type: Injectable,
|
|
10
|
+
args: [{
|
|
11
|
+
providedIn: 'root'
|
|
12
|
+
}]
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3NyYy9saWIvd2lkZ2V0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzNDLE1BQU0sT0FBTyxjQUFjO0lBRXpCLGdCQUFnQixDQUFDOzs0R0FGTixjQUFjO2dIQUFkLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRzU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of widgets
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/widgets.service';
|
|
5
|
+
export * from './lib/widgets.component';
|
|
6
|
+
export * from './lib/widgets.module';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB3aWRnZXRzXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvd2lkZ2V0cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3dpZGdldHMubW9kdWxlJztcbiJdfQ==
|