@tuki-io/tuki-widgets 0.0.0-watch
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/README.md +24 -0
- package/di2mt/README.md +42 -0
- package/di2mt/api/api.endpoints.d.ts +20 -0
- package/di2mt/index.d.ts +5 -0
- package/di2mt/public-api.d.ts +12 -0
- 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.d.ts +14 -0
- 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.d.ts +56 -0
- 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.d.ts +16 -0
- 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 -0
- package/public-api.d.ts +3 -0
- package/user-device-manage/index.d.ts +5 -0
- package/user-device-manage/public-api.d.ts +8 -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/public-api.d.ts +6 -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/public-api.d.ts +8 -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
|
@@ -0,0 +1,1994 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, ViewEncapsulation, Inject, Injectable, EventEmitter, Input, Output, ViewChild, NgModule } from '@angular/core';
|
|
3
|
+
import * as i10$1 from '@angular/material/table';
|
|
4
|
+
import { MatTableDataSource, MatTableModule } from '@angular/material/table';
|
|
5
|
+
import * as i1 from '@angular/material/dialog';
|
|
6
|
+
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
7
|
+
import * as i2 from '@angular/common';
|
|
8
|
+
import { Subject, of, forkJoin, BehaviorSubject, Observable } from 'rxjs';
|
|
9
|
+
import * as i7 from '@angular/forms';
|
|
10
|
+
import { FormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
|
+
import { map } from 'rxjs/operators';
|
|
12
|
+
import * as i1$1 from '@angular/common/http';
|
|
13
|
+
import { HttpHeaders, HttpClientModule } from '@angular/common/http';
|
|
14
|
+
import * as i8 from '@angular/material/button';
|
|
15
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
16
|
+
import * as i9 from '@angular/material/progress-spinner';
|
|
17
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
18
|
+
import * as i11$1 from '@angular/material/menu';
|
|
19
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
20
|
+
import * as i4 from '@angular/material/core';
|
|
21
|
+
import { MatNativeDateModule } from '@angular/material/core';
|
|
22
|
+
import * as i5 from '@angular/material/select';
|
|
23
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
24
|
+
import * as i6 from '@angular/material/paginator';
|
|
25
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
26
|
+
import * as Big from 'big.js';
|
|
27
|
+
import * as i10 from '@angular/material/form-field';
|
|
28
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
29
|
+
import * as i11 from '@angular/material/input';
|
|
30
|
+
import { MatInputModule } from '@angular/material/input';
|
|
31
|
+
import * as i12 from '@angular/material/autocomplete';
|
|
32
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
33
|
+
import * as i14 from '@angular/material/stepper';
|
|
34
|
+
import { MatStepperModule } from '@angular/material/stepper';
|
|
35
|
+
import * as i7$1 from '@angular/material/checkbox';
|
|
36
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
37
|
+
import * as i16 from '@angular/material/radio';
|
|
38
|
+
import { MatRadioModule } from '@angular/material/radio';
|
|
39
|
+
import * as i6$1 from '@angular/material/divider';
|
|
40
|
+
import { BrowserModule } from '@angular/platform-browser';
|
|
41
|
+
import { MatExpansionModule } from '@angular/material/expansion';
|
|
42
|
+
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
43
|
+
import { MatChipsModule } from '@angular/material/chips';
|
|
44
|
+
import { MatListModule } from '@angular/material/list';
|
|
45
|
+
import { MatSidenavModule } from '@angular/material/sidenav';
|
|
46
|
+
import { MatTreeModule } from '@angular/material/tree';
|
|
47
|
+
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
48
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
49
|
+
import { MatTabsModule } from '@angular/material/tabs';
|
|
50
|
+
import { MatCardModule } from '@angular/material/card';
|
|
51
|
+
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
52
|
+
|
|
53
|
+
class UserListConfirmDialogComponent {
|
|
54
|
+
constructor(dialogRef, data) {
|
|
55
|
+
this.dialogRef = dialogRef;
|
|
56
|
+
this.data = data;
|
|
57
|
+
this.confirmButtonText = 'OK';
|
|
58
|
+
this.message = '';
|
|
59
|
+
this.title = '';
|
|
60
|
+
}
|
|
61
|
+
ngOnInit() {
|
|
62
|
+
this.confirmButtonText = this.data.confirmButtonText || '';
|
|
63
|
+
this.message = this.data.message || '';
|
|
64
|
+
this.title = this.data.title || '';
|
|
65
|
+
}
|
|
66
|
+
onClose(val) {
|
|
67
|
+
this.dialogRef.close(val);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
UserListConfirmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserListConfirmDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
+
UserListConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserListConfirmDialogComponent, selector: "app-info-dialog", ngImport: i0, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\r\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\r\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\r\n <div class=\"move_user_popup_icon\"></div>\r\n <div class=\"dialog-content-message\" [innerHTML]=\"message\"></div>\r\n </div>\r\n <div mat-dialog-actions class=\"flex-gap-container\">\r\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\r\n Cancel\r\n </button>\r\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\r\n {{confirmButtonText}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative;padding:0 0 30px}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px;margin:0 auto 15px}.move_user_popup_icon{display:block;height:30xp;margin:auto}.mat-dialog-actions{margin:0;bottom:-20px}.dialog-content-message{font-weight:500}.dialog-content-message p{padding:15px 0 0}.mat-dialog-content{padding:0}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000;background:white}.app-dialog-confirm-button{background:black;color:#fff}.move_user_popup_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%22170%22 height%3D%2292%22 viewBox%3D%220 0 170 92%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg clip-path%3D%22url(%23clip0_1542_78221)%22%3E%0D%3Cpath d%3D%22M110.843 14.284C112.49 18.534 116.58 23.8465 122.052 23.8465C133.74 23.8465 141.177 6.31523 144.737 2.96836M103.99 17.6309C104.096 18.1621 104.521 18.534 105.052 18.534H107.337C107.868 18.534 108.293 18.1621 108.399 17.6309L108.718 15.8246C109.568 15.4527 110.312 14.9215 110.896 14.2309C111.321 13.7527 111.693 13.1684 111.958 12.5309L113.765 12.2121C114.296 12.1059 114.668 11.6809 114.668 11.1496V8.70586C114.668 8.17461 114.296 7.74961 113.765 7.64336L111.958 7.32461C111.321 5.89023 110.152 4.72148 108.718 4.08398L108.399 2.27773C108.293 1.74648 107.868 1.37461 107.337 1.37461H104.893C104.362 1.37461 103.937 1.74648 103.83 2.27773L103.512 4.08398C102.077 4.72148 100.908 5.89023 100.271 7.32461L98.4646 7.64336C97.9334 7.74961 97.5615 8.17461 97.5615 8.70586V11.6809C97.5615 12.2121 97.9334 12.6371 98.4646 12.7434L99.899 12.9559C100.43 13.0621 100.802 13.4871 100.802 14.0184V16.4621C100.802 16.9934 100.43 17.4184 99.899 17.5246L97.349 17.9496C96.9772 18.0027 96.6584 18.2684 96.499 18.6402C96.0209 20.1809 95.1709 21.5621 94.1084 22.7309C93.8428 22.9965 93.7897 23.4215 93.8959 23.7934L94.799 26.184C94.9584 26.6621 94.799 27.1934 94.3209 27.459L92.1959 28.6809C91.7709 28.9465 91.1865 28.8402 90.8678 28.4152L89.2209 26.4496C88.9553 26.1309 88.5834 26.0246 88.2115 26.0777C87.4678 26.2371 86.6709 26.3434 85.874 26.3434C85.0771 26.3434 84.2803 26.2371 83.5365 26.0777C83.1647 25.9715 82.7396 26.1309 82.5271 26.4496L80.8803 28.4152C80.5615 28.8402 79.9772 28.8934 79.5522 28.6809L77.4272 27.459C77.0022 27.1934 76.7897 26.6621 76.949 26.184L77.8522 23.7934C78.0115 23.4215 77.9053 22.9965 77.6396 22.7309C76.5771 21.5621 75.7803 20.1809 75.249 18.6402C75.1428 18.2684 74.824 18.0027 74.399 17.9496L71.849 17.5246C71.3178 17.4184 70.9459 16.9934 70.9459 16.4621V14.0184C70.9459 13.4871 71.3178 13.0621 71.849 12.9559L74.399 12.5309C74.7709 12.4777 75.0896 12.2121 75.249 11.8402C75.7271 10.2996 76.5771 8.91836 77.6396 7.74961C77.9053 7.48398 77.9584 7.05898 77.8522 6.68711L76.949 4.29648C76.7897 3.81836 76.949 3.28711 77.4272 3.02148L79.5522 1.79961C79.9772 1.53398 80.5615 1.64023 80.8803 2.06523L82.5271 4.03086C82.7928 4.34961 83.1647 4.45586 83.5365 4.40273C84.2803 4.24336 85.0771 4.13711 85.874 4.13711C86.6709 4.13711 87.4678 4.24336 88.2115 4.40273C88.5834 4.50898 89.0084 4.34961 89.2209 4.03086L90.8678 2.06523C91.1865 1.64023 91.7709 1.58711 92.1959 1.79961L94.3209 3.02148C94.7459 3.28711 94.9584 3.81836 94.799 4.29648L94.0022 6.68711C93.8959 7.05898 94.0022 7.48398 94.2678 7.74961M38.0615 85.4184H31.6865V55.6684C29.5084 55.6684 27.3303 54.8184 25.6834 53.1715C24.0365 51.5246 23.1865 49.3465 23.1865 47.1684H10.4365L18.9365 30.1684L25.6834 41.1652C28.9771 37.8715 34.3959 37.8715 37.6896 41.1652C40.8771 44.3527 40.9834 49.4527 38.0615 52.7996C37.849 53.0121 37.849 53.3309 38.0615 53.5434L47.5178 62.9996C46.0303 65.4434 46.349 68.684 48.474 70.809C49.2709 71.6059 50.2803 72.1902 51.3428 72.4559L51.9803 74.9527C52.2459 76.0152 53.7865 76.0152 54.0522 74.9527L54.6897 72.4559C55.9115 72.1371 57.0272 71.4465 57.8772 70.4371C59.8428 68.0996 59.8959 64.5934 57.9303 62.2559C55.8584 59.759 52.299 59.2809 49.6959 60.8746L42.1521 53.3309M59.3115 82.2309H57.1865V80.1059C57.1865 79.5215 56.7084 79.0434 56.124 79.0434H49.749C49.1646 79.0434 48.6865 79.5215 48.6865 80.1059V82.2309H47.624C47.0396 82.2309 46.5615 82.709 46.5615 83.2934V84.3559C46.5615 84.9402 47.0396 85.4184 47.624 85.4184H82.6865C84.4396 85.4184 85.874 86.8527 85.874 88.6059C85.874 90.4121 84.2272 91.7934 82.3678 91.7934C75.4615 91.634 69.9365 86.0027 69.9365 79.0434C69.9365 74.2621 69.9365 72.6684 69.9365 72.6684H66.749C66.1646 72.6684 65.6865 72.1902 65.6865 71.6059V56.7309C65.6865 56.1465 66.1646 55.6684 66.749 55.6684H69.9365C69.9365 53.0121 68.874 52.4809 68.874 50.3559C68.874 48.6027 70.3084 47.1684 72.0615 47.1684C73.8146 47.1684 75.249 48.6027 75.249 50.3559C75.249 52.4809 74.1865 53.0121 74.1865 55.6684H92.249C92.8334 55.6684 93.3115 56.1465 93.3115 56.7309V71.6059C93.3115 72.1902 92.8334 72.6684 92.249 72.6684H89.0615C89.0615 74.4215 87.6271 75.8559 85.874 75.8559C84.1209 75.8559 82.6865 74.4215 82.6865 72.6684C82.6865 70.9152 84.1209 69.4809 85.874 69.4809V26.4496M60.374 78.5121L62.499 76.9184M58.249 75.8559L59.3115 73.1996M68.874 59.9184H75.249M68.874 63.1059H75.249M68.874 66.2934H75.249M135.333 77.4496L127.683 85.0996C127.471 85.3121 127.205 85.4184 126.94 85.4184H100.802C100.218 85.4184 99.7397 84.9402 99.7397 84.3559V35.4809C99.7397 34.8965 100.218 34.4184 100.802 34.4184H136.927C137.512 34.4184 137.99 34.8965 137.99 35.4809V62.0434H132.943C132.199 62.0434 131.615 62.6277 131.615 63.3715C131.615 64.1152 132.199 64.6996 132.943 64.6996H149.412C150.155 64.6996 150.74 64.1152 150.74 63.3715C150.74 62.6277 150.155 62.0434 149.412 62.0434H142.24M126.249 81.6996V74.7934C126.249 74.209 126.727 73.7309 127.312 73.7309H136.874C137.458 73.7309 137.937 73.2527 137.937 72.6684V68.4184M103.937 44.9902L105.371 43.5559C106.646 42.2809 108.877 43.184 108.877 44.9902C108.877 46.7965 111.108 47.7527 112.383 46.4246L115.305 43.5027C116.58 42.2277 118.812 43.1309 118.812 44.9371C118.812 46.7434 121.043 47.6996 122.318 46.3715L125.24 43.4496C126.515 42.1746 128.746 43.0777 128.746 44.884C128.746 46.6902 130.977 47.6465 132.252 46.3184L133.687 44.884M103.937 54.5527L105.371 53.1184C106.646 51.8434 108.877 52.7465 108.877 54.5527C108.877 56.359 111.108 57.3152 112.383 55.9871L115.305 53.0652C116.58 51.7902 118.812 52.6934 118.812 54.4996C118.812 56.3059 121.043 57.2621 122.318 55.934L125.24 53.0121C126.515 51.7371 128.746 52.6402 128.746 54.4465C128.746 56.2527 130.977 57.209 132.252 55.8809L133.687 54.4465M103.937 64.1152L105.371 62.6809C106.646 61.4059 108.877 62.309 108.877 64.1152C108.877 65.9215 111.108 66.8777 112.383 65.5496L115.305 62.6277C116.58 61.3527 118.812 62.2559 118.812 64.0621C118.812 65.8684 121.043 66.8246 122.318 65.4965L123.699 64.1152M148.562 64.6996V66.2934C148.562 66.8777 148.083 67.3559 147.499 67.3559H143.249M131.562 63.4246H129.437M150.687 8.91836L142.505 17.0996C142.293 17.3121 142.187 17.5777 142.187 17.8434V62.0434M148.03 17.0465C148.88 17.3121 149.783 17.4715 150.687 17.4715C152.865 17.4715 155.043 16.6215 156.69 14.9746C159.983 11.6809 159.983 6.26211 156.69 2.96836C153.396 -0.325391 147.977 -0.325391 144.683 2.96836C143.037 4.61523 142.187 6.79336 142.187 8.97148C142.187 11.1496 143.037 13.3277 144.683 14.9746M92.249 15.2934C92.249 18.8142 89.3948 21.6684 85.874 21.6684C82.3532 21.6684 79.499 18.8142 79.499 15.2934C79.499 11.7725 82.3532 8.91836 85.874 8.91836C89.3948 8.91836 92.249 11.7725 92.249 15.2934ZM108.187 9.98086C108.187 11.1545 107.235 12.1059 106.062 12.1059C104.888 12.1059 103.937 11.1545 103.937 9.98086C103.937 8.80725 104.888 7.85586 106.062 7.85586C107.235 7.85586 108.187 8.80725 108.187 9.98086Z%22 stroke%3D%22url(%23paint0_linear_1542_78221)%22 stroke-width%3D%221.5%22 stroke-miterlimit%3D%2210%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fg%3E%0D%3Cdefs%3E%0D%3ClinearGradient id%3D%22paint0_linear_1542_78221%22 x1%3D%2284.7982%22 y1%3D%220.498047%22 x2%3D%2284.7982%22 y2%3D%2291.7934%22 gradientUnits%3D%22userSpaceOnUse%22%3E%0D%3Cstop stop-color%3D%22%2393C437%22%2F%3E%0D%3Cstop offset%3D%221%22 stop-color%3D%22%23279BE8%22%2F%3E%0D%3C%2FlinearGradient%3E%0D%3CclipPath id%3D%22clip0_1542_78221%22%3E%0D%3Crect width%3D%22170%22 height%3D%2292%22 fill%3D%22white%22%2F%3E%0D%3C%2FclipPath%3E%0D%3C%2Fdefs%3E%0D%3C%2Fsvg%3E%0D\");display:block;height:100px;margin:auto;background-repeat:no-repeat;background-position:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
72
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserListConfirmDialogComponent, decorators: [{
|
|
73
|
+
type: Component,
|
|
74
|
+
args: [{ selector: 'app-info-dialog', encapsulation: ViewEncapsulation.None, template: "<div id=\"info-dialog\" class=\"app-dialog\" aria-labelledby=\"info-dialog-label\" role=\"dialog\">\r\n <h3 *ngIf=\"title\" class=\"app-dialog-title\">{{title}}</h3>\r\n <div mat-dialog-content *ngIf=\"message\" class=\"app-dialog-content\">\r\n <div class=\"move_user_popup_icon\"></div>\r\n <div class=\"dialog-content-message\" [innerHTML]=\"message\"></div>\r\n </div>\r\n <div mat-dialog-actions class=\"flex-gap-container\">\r\n <button class=\"app-dialog-button app-dialog-cancel-button\" (click)=\"onClose(false)\">\r\n Cancel\r\n </button>\r\n <button class=\"app-dialog-button app-dialog-confirm-button\" (click)=\"onClose(true)\">\r\n {{confirmButtonText}}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap\";#info-dialog{min-height:150px;width:400px;box-sizing:border-box;position:relative;padding:0 0 30px}#info-dialog .fa{font-size:35px;margin:0 auto 20px;display:block;text-align:center;color:#009fdb;cursor:default}.scroll-content{overflow-y:auto;margin:auto;max-height:150px;width:100%}.app-dialog{font-family:Inter,Inter,sans-serif}.app-dialog .app-dialog-title{text-align:center;font-weight:600;font-size:16px;font-family:Inter,Inter,sans-serif;margin:0 0 24px}.app-dialog .flex-gap-container{gap:16px;position:absolute;right:0;gap:15px;display:flex}.app-dialog .app-dialog-content{color:#000000b3;font-size:14px;margin:0 auto 15px}.move_user_popup_icon{display:block;height:30xp;margin:auto}.mat-dialog-actions{margin:0;bottom:-20px}.dialog-content-message{font-weight:500}.dialog-content-message p{padding:15px 0 0}.mat-dialog-content{padding:0}.app-dialog-button{height:32px;padding:10px 12px;text-align:center;border-radius:50px;box-shadow:none;line-height:11px;border:none;font-size:14px;font-family:Inter,Inter,sans-serif;cursor:pointer}.app-dialog-cancel-button{border:1px solid rgba(0,0,0,.5);color:#000;background:white}.app-dialog-confirm-button{background:black;color:#fff}.move_user_popup_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%22170%22 height%3D%2292%22 viewBox%3D%220 0 170 92%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg clip-path%3D%22url(%23clip0_1542_78221)%22%3E%0D%3Cpath d%3D%22M110.843 14.284C112.49 18.534 116.58 23.8465 122.052 23.8465C133.74 23.8465 141.177 6.31523 144.737 2.96836M103.99 17.6309C104.096 18.1621 104.521 18.534 105.052 18.534H107.337C107.868 18.534 108.293 18.1621 108.399 17.6309L108.718 15.8246C109.568 15.4527 110.312 14.9215 110.896 14.2309C111.321 13.7527 111.693 13.1684 111.958 12.5309L113.765 12.2121C114.296 12.1059 114.668 11.6809 114.668 11.1496V8.70586C114.668 8.17461 114.296 7.74961 113.765 7.64336L111.958 7.32461C111.321 5.89023 110.152 4.72148 108.718 4.08398L108.399 2.27773C108.293 1.74648 107.868 1.37461 107.337 1.37461H104.893C104.362 1.37461 103.937 1.74648 103.83 2.27773L103.512 4.08398C102.077 4.72148 100.908 5.89023 100.271 7.32461L98.4646 7.64336C97.9334 7.74961 97.5615 8.17461 97.5615 8.70586V11.6809C97.5615 12.2121 97.9334 12.6371 98.4646 12.7434L99.899 12.9559C100.43 13.0621 100.802 13.4871 100.802 14.0184V16.4621C100.802 16.9934 100.43 17.4184 99.899 17.5246L97.349 17.9496C96.9772 18.0027 96.6584 18.2684 96.499 18.6402C96.0209 20.1809 95.1709 21.5621 94.1084 22.7309C93.8428 22.9965 93.7897 23.4215 93.8959 23.7934L94.799 26.184C94.9584 26.6621 94.799 27.1934 94.3209 27.459L92.1959 28.6809C91.7709 28.9465 91.1865 28.8402 90.8678 28.4152L89.2209 26.4496C88.9553 26.1309 88.5834 26.0246 88.2115 26.0777C87.4678 26.2371 86.6709 26.3434 85.874 26.3434C85.0771 26.3434 84.2803 26.2371 83.5365 26.0777C83.1647 25.9715 82.7396 26.1309 82.5271 26.4496L80.8803 28.4152C80.5615 28.8402 79.9772 28.8934 79.5522 28.6809L77.4272 27.459C77.0022 27.1934 76.7897 26.6621 76.949 26.184L77.8522 23.7934C78.0115 23.4215 77.9053 22.9965 77.6396 22.7309C76.5771 21.5621 75.7803 20.1809 75.249 18.6402C75.1428 18.2684 74.824 18.0027 74.399 17.9496L71.849 17.5246C71.3178 17.4184 70.9459 16.9934 70.9459 16.4621V14.0184C70.9459 13.4871 71.3178 13.0621 71.849 12.9559L74.399 12.5309C74.7709 12.4777 75.0896 12.2121 75.249 11.8402C75.7271 10.2996 76.5771 8.91836 77.6396 7.74961C77.9053 7.48398 77.9584 7.05898 77.8522 6.68711L76.949 4.29648C76.7897 3.81836 76.949 3.28711 77.4272 3.02148L79.5522 1.79961C79.9772 1.53398 80.5615 1.64023 80.8803 2.06523L82.5271 4.03086C82.7928 4.34961 83.1647 4.45586 83.5365 4.40273C84.2803 4.24336 85.0771 4.13711 85.874 4.13711C86.6709 4.13711 87.4678 4.24336 88.2115 4.40273C88.5834 4.50898 89.0084 4.34961 89.2209 4.03086L90.8678 2.06523C91.1865 1.64023 91.7709 1.58711 92.1959 1.79961L94.3209 3.02148C94.7459 3.28711 94.9584 3.81836 94.799 4.29648L94.0022 6.68711C93.8959 7.05898 94.0022 7.48398 94.2678 7.74961M38.0615 85.4184H31.6865V55.6684C29.5084 55.6684 27.3303 54.8184 25.6834 53.1715C24.0365 51.5246 23.1865 49.3465 23.1865 47.1684H10.4365L18.9365 30.1684L25.6834 41.1652C28.9771 37.8715 34.3959 37.8715 37.6896 41.1652C40.8771 44.3527 40.9834 49.4527 38.0615 52.7996C37.849 53.0121 37.849 53.3309 38.0615 53.5434L47.5178 62.9996C46.0303 65.4434 46.349 68.684 48.474 70.809C49.2709 71.6059 50.2803 72.1902 51.3428 72.4559L51.9803 74.9527C52.2459 76.0152 53.7865 76.0152 54.0522 74.9527L54.6897 72.4559C55.9115 72.1371 57.0272 71.4465 57.8772 70.4371C59.8428 68.0996 59.8959 64.5934 57.9303 62.2559C55.8584 59.759 52.299 59.2809 49.6959 60.8746L42.1521 53.3309M59.3115 82.2309H57.1865V80.1059C57.1865 79.5215 56.7084 79.0434 56.124 79.0434H49.749C49.1646 79.0434 48.6865 79.5215 48.6865 80.1059V82.2309H47.624C47.0396 82.2309 46.5615 82.709 46.5615 83.2934V84.3559C46.5615 84.9402 47.0396 85.4184 47.624 85.4184H82.6865C84.4396 85.4184 85.874 86.8527 85.874 88.6059C85.874 90.4121 84.2272 91.7934 82.3678 91.7934C75.4615 91.634 69.9365 86.0027 69.9365 79.0434C69.9365 74.2621 69.9365 72.6684 69.9365 72.6684H66.749C66.1646 72.6684 65.6865 72.1902 65.6865 71.6059V56.7309C65.6865 56.1465 66.1646 55.6684 66.749 55.6684H69.9365C69.9365 53.0121 68.874 52.4809 68.874 50.3559C68.874 48.6027 70.3084 47.1684 72.0615 47.1684C73.8146 47.1684 75.249 48.6027 75.249 50.3559C75.249 52.4809 74.1865 53.0121 74.1865 55.6684H92.249C92.8334 55.6684 93.3115 56.1465 93.3115 56.7309V71.6059C93.3115 72.1902 92.8334 72.6684 92.249 72.6684H89.0615C89.0615 74.4215 87.6271 75.8559 85.874 75.8559C84.1209 75.8559 82.6865 74.4215 82.6865 72.6684C82.6865 70.9152 84.1209 69.4809 85.874 69.4809V26.4496M60.374 78.5121L62.499 76.9184M58.249 75.8559L59.3115 73.1996M68.874 59.9184H75.249M68.874 63.1059H75.249M68.874 66.2934H75.249M135.333 77.4496L127.683 85.0996C127.471 85.3121 127.205 85.4184 126.94 85.4184H100.802C100.218 85.4184 99.7397 84.9402 99.7397 84.3559V35.4809C99.7397 34.8965 100.218 34.4184 100.802 34.4184H136.927C137.512 34.4184 137.99 34.8965 137.99 35.4809V62.0434H132.943C132.199 62.0434 131.615 62.6277 131.615 63.3715C131.615 64.1152 132.199 64.6996 132.943 64.6996H149.412C150.155 64.6996 150.74 64.1152 150.74 63.3715C150.74 62.6277 150.155 62.0434 149.412 62.0434H142.24M126.249 81.6996V74.7934C126.249 74.209 126.727 73.7309 127.312 73.7309H136.874C137.458 73.7309 137.937 73.2527 137.937 72.6684V68.4184M103.937 44.9902L105.371 43.5559C106.646 42.2809 108.877 43.184 108.877 44.9902C108.877 46.7965 111.108 47.7527 112.383 46.4246L115.305 43.5027C116.58 42.2277 118.812 43.1309 118.812 44.9371C118.812 46.7434 121.043 47.6996 122.318 46.3715L125.24 43.4496C126.515 42.1746 128.746 43.0777 128.746 44.884C128.746 46.6902 130.977 47.6465 132.252 46.3184L133.687 44.884M103.937 54.5527L105.371 53.1184C106.646 51.8434 108.877 52.7465 108.877 54.5527C108.877 56.359 111.108 57.3152 112.383 55.9871L115.305 53.0652C116.58 51.7902 118.812 52.6934 118.812 54.4996C118.812 56.3059 121.043 57.2621 122.318 55.934L125.24 53.0121C126.515 51.7371 128.746 52.6402 128.746 54.4465C128.746 56.2527 130.977 57.209 132.252 55.8809L133.687 54.4465M103.937 64.1152L105.371 62.6809C106.646 61.4059 108.877 62.309 108.877 64.1152C108.877 65.9215 111.108 66.8777 112.383 65.5496L115.305 62.6277C116.58 61.3527 118.812 62.2559 118.812 64.0621C118.812 65.8684 121.043 66.8246 122.318 65.4965L123.699 64.1152M148.562 64.6996V66.2934C148.562 66.8777 148.083 67.3559 147.499 67.3559H143.249M131.562 63.4246H129.437M150.687 8.91836L142.505 17.0996C142.293 17.3121 142.187 17.5777 142.187 17.8434V62.0434M148.03 17.0465C148.88 17.3121 149.783 17.4715 150.687 17.4715C152.865 17.4715 155.043 16.6215 156.69 14.9746C159.983 11.6809 159.983 6.26211 156.69 2.96836C153.396 -0.325391 147.977 -0.325391 144.683 2.96836C143.037 4.61523 142.187 6.79336 142.187 8.97148C142.187 11.1496 143.037 13.3277 144.683 14.9746M92.249 15.2934C92.249 18.8142 89.3948 21.6684 85.874 21.6684C82.3532 21.6684 79.499 18.8142 79.499 15.2934C79.499 11.7725 82.3532 8.91836 85.874 8.91836C89.3948 8.91836 92.249 11.7725 92.249 15.2934ZM108.187 9.98086C108.187 11.1545 107.235 12.1059 106.062 12.1059C104.888 12.1059 103.937 11.1545 103.937 9.98086C103.937 8.80725 104.888 7.85586 106.062 7.85586C107.235 7.85586 108.187 8.80725 108.187 9.98086Z%22 stroke%3D%22url(%23paint0_linear_1542_78221)%22 stroke-width%3D%221.5%22 stroke-miterlimit%3D%2210%22 stroke-linecap%3D%22round%22 stroke-linejoin%3D%22round%22%2F%3E%0D%3C%2Fg%3E%0D%3Cdefs%3E%0D%3ClinearGradient id%3D%22paint0_linear_1542_78221%22 x1%3D%2284.7982%22 y1%3D%220.498047%22 x2%3D%2284.7982%22 y2%3D%2291.7934%22 gradientUnits%3D%22userSpaceOnUse%22%3E%0D%3Cstop stop-color%3D%22%2393C437%22%2F%3E%0D%3Cstop offset%3D%221%22 stop-color%3D%22%23279BE8%22%2F%3E%0D%3C%2FlinearGradient%3E%0D%3CclipPath id%3D%22clip0_1542_78221%22%3E%0D%3Crect width%3D%22170%22 height%3D%2292%22 fill%3D%22white%22%2F%3E%0D%3C%2FclipPath%3E%0D%3C%2Fdefs%3E%0D%3C%2Fsvg%3E%0D\");display:block;height:100px;margin:auto;background-repeat:no-repeat;background-position:center}\n"] }]
|
|
75
|
+
}], ctorParameters: function () {
|
|
76
|
+
return [{ type: i1.MatDialogRef }, { type: InfoDialogConfig, decorators: [{
|
|
77
|
+
type: Inject,
|
|
78
|
+
args: [MAT_DIALOG_DATA]
|
|
79
|
+
}] }];
|
|
80
|
+
} });
|
|
81
|
+
class InfoDialogConfig {
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const getSavableData = (model, exclude) => {
|
|
85
|
+
let result = Object.keys(model);
|
|
86
|
+
if (exclude && exclude.length) {
|
|
87
|
+
result = result.filter(key => !exclude.some(item => item === key));
|
|
88
|
+
}
|
|
89
|
+
return result.reduce((result, key) => {
|
|
90
|
+
if (model[key] instanceof Array && model[key].length && model[key][0].getSavableData) {
|
|
91
|
+
result[key] = model[key].map((item) => item.getSavableData());
|
|
92
|
+
}
|
|
93
|
+
else if (model[key] instanceof Object && model[key].getSavableData) {
|
|
94
|
+
result[key] = model[key].getSavableData();
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
result[key] = model[key];
|
|
98
|
+
}
|
|
99
|
+
return result;
|
|
100
|
+
}, {});
|
|
101
|
+
};
|
|
102
|
+
const filterOptions = (options, query, shownValue, field) => {
|
|
103
|
+
if (!options) {
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
if (!query) {
|
|
107
|
+
return options;
|
|
108
|
+
}
|
|
109
|
+
return options.filter(option => {
|
|
110
|
+
return (field ? String(option[field]).toLowerCase().includes(String(query).toLowerCase()) :
|
|
111
|
+
String(option).toLowerCase().includes(String(query).toLowerCase()) ||
|
|
112
|
+
(shownValue && shownValue === option));
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
const API = {
|
|
117
|
+
USER_TOKEN: '/api/provision/:siteId/users/:userId/token',
|
|
118
|
+
UPDATE_USER_FIELDS: '/api/provision/:siteId/userFields/:token',
|
|
119
|
+
PERSIST_USER_CACHE: '/api/provision/:siteId/saveUser/:token',
|
|
120
|
+
USER_BY_ID: '/api/provision/:siteId/users/:userId',
|
|
121
|
+
QUICK_USERS_SEARCH: "/api/search/quickusers",
|
|
122
|
+
DELETE_USER: "/api/search/quickusers",
|
|
123
|
+
MOVE_USER: "/api/migration/webex/singlemigration/features/PERSON",
|
|
124
|
+
AVAILABLE_DN_IN_RANGES: "/api/sites/:siteId/available-dn-in-ranges",
|
|
125
|
+
DELETE_LINE: "/api/provision/:siteId/deleteLine/:pkid/:token",
|
|
126
|
+
DISASSOCIATE_LINE: "/api/provision/:siteId/:deviceName/deleteLineAssociation/:linePkid/:token",
|
|
127
|
+
CHECK_DELETE_LINE: "/api/provision/:siteId/checklinedeletion",
|
|
128
|
+
ASSOCIATE_LINE: "/api/provision/:siteId/:deviceName/createLineAssociation/:token",
|
|
129
|
+
CHECK_DESTINATION_NUMBER: "/api/provision/:siteId/check-dn",
|
|
130
|
+
UPDATE_LINE_FIELDS: "/api/provision/:siteId/lineFields/:pkid/:token",
|
|
131
|
+
UPDATE_DEVICE_FIELDS: "/api/provision/:siteId/deviceFields/:deviceName/:token",
|
|
132
|
+
WEBEX_USERS: "/api/webex/provisioning/customers/:customerId/users",
|
|
133
|
+
MIGRATED_USERS: "/api/search/migratedusers",
|
|
134
|
+
REVERT_WEBEX_USER: "/api/webex/provisioning/customers/:customerId/persons/:webexUUID/revertmigration",
|
|
135
|
+
PHONE_NUMBERS: "/api/search/webex/customers/:customerId/locations/:locationId/phonenumbers",
|
|
136
|
+
GET_LOCATIONS: "/api/search/webex/customers/:customerId/locations",
|
|
137
|
+
PREPARE_PERSON_MIGRATION: "/api/migration/webex/preparepersonmigration",
|
|
138
|
+
MIGRATION_FORM: "/api/search/webex/customers/:customerId/migrationforms/:formId",
|
|
139
|
+
START_MIGRATION: "/api/migration/webex/startpersonmigration"
|
|
140
|
+
};
|
|
141
|
+
const REGEX_PATTERN = {
|
|
142
|
+
EMAIL: '^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))' +
|
|
143
|
+
'@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,62}[a-zA-Z0-9])' +
|
|
144
|
+
'?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?)*$'
|
|
145
|
+
};
|
|
146
|
+
const PAGINATION_DEFAULTS = {
|
|
147
|
+
SIZE: 10,
|
|
148
|
+
INDEX: 0
|
|
149
|
+
};
|
|
150
|
+
const PAGINATION_SIZE_OPTIONS = [
|
|
151
|
+
10,
|
|
152
|
+
50,
|
|
153
|
+
100,
|
|
154
|
+
500
|
|
155
|
+
];
|
|
156
|
+
const CUCS_TO_IGNORE = [
|
|
157
|
+
189,
|
|
158
|
+
194,
|
|
159
|
+
191,
|
|
160
|
+
190
|
|
161
|
+
];
|
|
162
|
+
const CUCMS_TO_IGNORE = [
|
|
163
|
+
249,
|
|
164
|
+
255,
|
|
165
|
+
251,
|
|
166
|
+
250
|
|
167
|
+
];
|
|
168
|
+
const MAX_INTEGER = 2147483647;
|
|
169
|
+
|
|
170
|
+
class SimplifiedUser {
|
|
171
|
+
constructor(user) {
|
|
172
|
+
if (user) {
|
|
173
|
+
this.userid = user.userid;
|
|
174
|
+
this.email = user.email;
|
|
175
|
+
this.firstName = user.firstName;
|
|
176
|
+
this.lastName = user.lastName;
|
|
177
|
+
this.token = user.token;
|
|
178
|
+
}
|
|
179
|
+
this.initForm();
|
|
180
|
+
}
|
|
181
|
+
initForm() {
|
|
182
|
+
const formBuilder = new FormBuilder();
|
|
183
|
+
const formSettings = {
|
|
184
|
+
userid: [{ value: this.userid || '', disabled: true }, [Validators.required, Validators.maxLength(128)]],
|
|
185
|
+
email: [{ value: this.email || '', disabled: true }, [
|
|
186
|
+
Validators.pattern(REGEX_PATTERN.EMAIL),
|
|
187
|
+
Validators.required
|
|
188
|
+
]],
|
|
189
|
+
firstName: [{ value: this.firstName || '', disabled: true }],
|
|
190
|
+
lastName: [{ value: this.lastName || '', disabled: true }, Validators.required],
|
|
191
|
+
};
|
|
192
|
+
this.form = formBuilder.group(formSettings);
|
|
193
|
+
}
|
|
194
|
+
toggleEditMode() {
|
|
195
|
+
this.editMode = !this.editMode;
|
|
196
|
+
['userid', 'email', 'firstName', 'lastName'].forEach(token => {
|
|
197
|
+
var _a, _b;
|
|
198
|
+
if (this.editMode) {
|
|
199
|
+
(_a = this.form.get(token)) === null || _a === void 0 ? void 0 : _a.enable();
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
(_b = this.form.get(token)) === null || _b === void 0 ? void 0 : _b.disable();
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
getSavableData() {
|
|
207
|
+
const excludedFields = ['form', 'editMode', 'viewMode', 'token', 'hasModifiedCache'];
|
|
208
|
+
return getSavableData(this, excludedFields);
|
|
209
|
+
}
|
|
210
|
+
equal(userToCompare) {
|
|
211
|
+
if (!userToCompare) {
|
|
212
|
+
return false;
|
|
213
|
+
}
|
|
214
|
+
return JSON.stringify(this.getSavableData()) === JSON.stringify(userToCompare.getSavableData());
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
class UtilsService {
|
|
219
|
+
static sortSortArrayByProperty(array, sortBy) {
|
|
220
|
+
if (!array) {
|
|
221
|
+
return null;
|
|
222
|
+
}
|
|
223
|
+
return array.sort((a, b) => {
|
|
224
|
+
if (!a[sortBy] && !b[sortBy]) {
|
|
225
|
+
return 0;
|
|
226
|
+
}
|
|
227
|
+
if (a[sortBy] && !b[sortBy]) {
|
|
228
|
+
return 1;
|
|
229
|
+
}
|
|
230
|
+
if (!a[sortBy] && b[sortBy]) {
|
|
231
|
+
return -1;
|
|
232
|
+
}
|
|
233
|
+
const positionA = a[sortBy];
|
|
234
|
+
const positionB = b[sortBy];
|
|
235
|
+
return (positionA < positionB) ? -1 : (positionA > positionB) ? 1 : 0;
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
static diff(origObject, updatedObj, path, keysToIgnore) {
|
|
239
|
+
let result = [];
|
|
240
|
+
if (Object.is(origObject, updatedObj)) {
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
if (!updatedObj || typeof updatedObj !== 'object') {
|
|
244
|
+
return updatedObj;
|
|
245
|
+
}
|
|
246
|
+
const concat = Array.from(new Set([...Object.keys(origObject || {}), ...Object.keys(updatedObj || {})]));
|
|
247
|
+
const filter = keysToIgnore ? concat.filter(key => !keysToIgnore.includes(key)) : concat;
|
|
248
|
+
filter
|
|
249
|
+
.forEach(key => {
|
|
250
|
+
if (typeof updatedObj[key] === 'object' && typeof origObject[key] === 'object') {
|
|
251
|
+
if (UtilsService.differs(updatedObj[key], origObject[key])) {
|
|
252
|
+
const newPath = `${path}${path ? '.' : ''}${key}`;
|
|
253
|
+
const values = UtilsService.diff(origObject[key], updatedObj[key], newPath, keysToIgnore);
|
|
254
|
+
if (values !== undefined) {
|
|
255
|
+
result = [...result, ...values];
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
else if (updatedObj && !origObject || updatedObj[key] !== origObject[key] && !Object.is(origObject[key], updatedObj[key])) {
|
|
260
|
+
const value = updatedObj ? UtilsService.formatIfEmpty(updatedObj[key]) : null;
|
|
261
|
+
result.push(`${path}${path ? '.' : ''}${key}=${value}`);
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
return result;
|
|
265
|
+
}
|
|
266
|
+
static formatIfEmpty(value) {
|
|
267
|
+
if (value) {
|
|
268
|
+
return value;
|
|
269
|
+
}
|
|
270
|
+
switch (typeof value) {
|
|
271
|
+
case 'boolean':
|
|
272
|
+
return value;
|
|
273
|
+
case 'string':
|
|
274
|
+
return '';
|
|
275
|
+
default:
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
static differs(obj1, obj2) {
|
|
280
|
+
return JSON.stringify(obj1) !== JSON.stringify(obj2);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
UtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
284
|
+
UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService });
|
|
285
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UtilsService, decorators: [{
|
|
286
|
+
type: Injectable
|
|
287
|
+
}] });
|
|
288
|
+
|
|
289
|
+
class APIService {
|
|
290
|
+
constructor(httpClient) {
|
|
291
|
+
this.httpClient = httpClient;
|
|
292
|
+
this.apiUrl = window.location.protocol + '//' + window.location.hostname + '/dcp';
|
|
293
|
+
}
|
|
294
|
+
fetch(url, params = {}, cache) {
|
|
295
|
+
const headers = this.getHeaders(cache);
|
|
296
|
+
return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
|
|
297
|
+
}
|
|
298
|
+
post(url, body, params = {}) {
|
|
299
|
+
body = body || null;
|
|
300
|
+
const headers = this.getHeaders();
|
|
301
|
+
return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
|
|
302
|
+
}
|
|
303
|
+
// use when response extended data is necessary:
|
|
304
|
+
postExtended(url, body = null, params = {}, headers = {}) {
|
|
305
|
+
headers = headers || this.getHeaders();
|
|
306
|
+
return this.httpClient.post(this.apiUrl + url, body, {
|
|
307
|
+
headers,
|
|
308
|
+
observe: 'response',
|
|
309
|
+
params: this.prepareEncodedParams(params)
|
|
310
|
+
});
|
|
311
|
+
}
|
|
312
|
+
put(url, body = null, params = {}) {
|
|
313
|
+
const headers = this.getHeaders();
|
|
314
|
+
return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
|
|
315
|
+
}
|
|
316
|
+
delete(url, params = {}) {
|
|
317
|
+
const headers = this.getHeaders();
|
|
318
|
+
return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
|
|
319
|
+
}
|
|
320
|
+
fetchPagination(url, pageSize, pageNumber, additionalParams = {}, cache) {
|
|
321
|
+
const copyAdditionalParams = JSON.parse(JSON.stringify(additionalParams));
|
|
322
|
+
const params = Object.assign(copyAdditionalParams, { size: pageSize.toString(), page: pageNumber.toString() });
|
|
323
|
+
return this.fetch(url, params, cache);
|
|
324
|
+
}
|
|
325
|
+
prepareEncodedParams(params) {
|
|
326
|
+
const result = {};
|
|
327
|
+
if (!params) {
|
|
328
|
+
return {};
|
|
329
|
+
}
|
|
330
|
+
for (const key of Object.keys(params)) {
|
|
331
|
+
if (params[key]) {
|
|
332
|
+
const stringParam = params[key].toString();
|
|
333
|
+
result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
return result;
|
|
337
|
+
}
|
|
338
|
+
getHeaders(cache) {
|
|
339
|
+
let headers = new HttpHeaders();
|
|
340
|
+
if (cache) {
|
|
341
|
+
headers = headers.append('_Cache', 'true ');
|
|
342
|
+
}
|
|
343
|
+
const token = this.token || this.getParameterByName('token');
|
|
344
|
+
headers = headers.append('Authorization', 'Bearer ' + token);
|
|
345
|
+
return headers;
|
|
346
|
+
}
|
|
347
|
+
getParameterByName(name, url = window.location.href) {
|
|
348
|
+
name = name.replace(/[\[\]]/g, '\\$&');
|
|
349
|
+
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
|
|
350
|
+
if (!results)
|
|
351
|
+
return null;
|
|
352
|
+
if (!results[2])
|
|
353
|
+
return '';
|
|
354
|
+
return decodeURIComponent(results[2].replace(/\+/g, ' '));
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
358
|
+
APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService });
|
|
359
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
|
|
360
|
+
type: Injectable
|
|
361
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
|
|
362
|
+
|
|
363
|
+
class ApiWebexService extends APIService {
|
|
364
|
+
constructor(httpClient) {
|
|
365
|
+
super(httpClient);
|
|
366
|
+
//this.apiUrl = window.location.protocol + "//"+ window.location.hostname + environment.apiAuthUrl;
|
|
367
|
+
this.apiUrl = 'https://webex.car-west.net/webex';
|
|
368
|
+
// this.apiUrl = 'https://staging.tuki.io/webex';
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
ApiWebexService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, deps: [{ token: i1$1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
372
|
+
ApiWebexService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService });
|
|
373
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, decorators: [{
|
|
374
|
+
type: Injectable
|
|
375
|
+
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
|
|
376
|
+
|
|
377
|
+
class UserService {
|
|
378
|
+
constructor(apiService, apiWebexService) {
|
|
379
|
+
this.apiService = apiService;
|
|
380
|
+
this.apiWebexService = apiWebexService;
|
|
381
|
+
this.siteId = -1;
|
|
382
|
+
this.userId = '';
|
|
383
|
+
this.userIdExistPending = false;
|
|
384
|
+
this.hasExistedUserId = false;
|
|
385
|
+
this.moveUserPending = false;
|
|
386
|
+
this.userMoved$ = new Subject();
|
|
387
|
+
}
|
|
388
|
+
ngOnInit() {
|
|
389
|
+
console.log(this.siteId);
|
|
390
|
+
}
|
|
391
|
+
fetchUserToken(siteId, userId) {
|
|
392
|
+
this.siteId = siteId;
|
|
393
|
+
this.userId = userId;
|
|
394
|
+
return this.apiService.fetch(API.USER_TOKEN.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))))
|
|
395
|
+
.pipe(map((result) => {
|
|
396
|
+
const token = Object.keys(result)[0];
|
|
397
|
+
this.setSimplifiedUser(Object.values(result)[0], token);
|
|
398
|
+
}));
|
|
399
|
+
// .pipe(this.handleError(false, true));
|
|
400
|
+
}
|
|
401
|
+
updateUserFields(body) {
|
|
402
|
+
var _a;
|
|
403
|
+
if (!this.userId || !this.siteId || !((_a = this.user) === null || _a === void 0 ? void 0 : _a.token)) {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
return this.apiService.post(API.UPDATE_USER_FIELDS.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), body);
|
|
407
|
+
// .pipe(this.handleError(false, true));
|
|
408
|
+
}
|
|
409
|
+
moveUserToMT(customerId, user) {
|
|
410
|
+
// return new Observable<boolean>(observer => {
|
|
411
|
+
// setTimeout(() => {
|
|
412
|
+
// observer.next(true);
|
|
413
|
+
//
|
|
414
|
+
// }, 1000);
|
|
415
|
+
// });
|
|
416
|
+
return this.apiWebexService.post(API.MOVE_USER, this.getMoveUserBody(customerId, user));
|
|
417
|
+
// .pipe(this.handleError(true, true));
|
|
418
|
+
}
|
|
419
|
+
moveUserToDI(customerId, user) {
|
|
420
|
+
// return new Observable<boolean>(observer => {
|
|
421
|
+
// setTimeout(() => {
|
|
422
|
+
// observer.next(true);
|
|
423
|
+
//
|
|
424
|
+
// }, 1000);
|
|
425
|
+
// });
|
|
426
|
+
const URL = API.REVERT_WEBEX_USER.replace(':customerId', customerId).replace(':webexUUID', String(user.webexUUID));
|
|
427
|
+
return this.apiWebexService.post(URL, this.getMoveUserBody(customerId, user));
|
|
428
|
+
// .pipe(this.handleError(true, true));
|
|
429
|
+
}
|
|
430
|
+
getMoveUserBody(customerId, user) {
|
|
431
|
+
return {
|
|
432
|
+
customerId: customerId,
|
|
433
|
+
entities: {
|
|
434
|
+
PERSON: [{ cucmId: user.cucmId, entityId: user.userid }]
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
deleteUser(siteId, userId) {
|
|
439
|
+
return this.apiService.delete(API.DELETE_USER.replace(':siteId', String(siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(userId))));
|
|
440
|
+
// .pipe(this.handleError(true, true));
|
|
441
|
+
}
|
|
442
|
+
fetchUserById(id) {
|
|
443
|
+
this.userIdExistPending = true;
|
|
444
|
+
return this.apiService.fetch(API.USER_BY_ID.replace(':siteId', String(this.siteId)).replace(':userId', encodeURIComponent(encodeURIComponent(id))))
|
|
445
|
+
.pipe(map(result => {
|
|
446
|
+
this.userIdExistPending = false;
|
|
447
|
+
return result;
|
|
448
|
+
}));
|
|
449
|
+
}
|
|
450
|
+
persistCacheChanges() {
|
|
451
|
+
const params = {
|
|
452
|
+
excludeDeviceExtraOptions: true
|
|
453
|
+
};
|
|
454
|
+
return this.processUserChangesToCache()
|
|
455
|
+
.pipe(map((result) => {
|
|
456
|
+
return this.apiService.post(API.PERSIST_USER_CACHE.replace(':siteId', String(this.siteId)).replace(':token', this.user.token), {}, params)
|
|
457
|
+
.subscribe(() => {
|
|
458
|
+
});
|
|
459
|
+
// .pipe(map((user) => {
|
|
460
|
+
// // this.setUser(user, false, this.user.token);
|
|
461
|
+
// this.user.hasModifiedCache = false;
|
|
462
|
+
// }))
|
|
463
|
+
// .pipe(this.handleError(true, true));
|
|
464
|
+
}));
|
|
465
|
+
}
|
|
466
|
+
processUserChangesToCache() {
|
|
467
|
+
const calls = [];
|
|
468
|
+
const body = UtilsService.diff(this.originUser.getSavableData(), this.user.getSavableData(), 'user');
|
|
469
|
+
if (body) {
|
|
470
|
+
calls.push(this.updateUserFields(body));
|
|
471
|
+
}
|
|
472
|
+
if (!(calls === null || calls === void 0 ? void 0 : calls.length)) {
|
|
473
|
+
return of(this.user);
|
|
474
|
+
}
|
|
475
|
+
return forkJoin(calls)
|
|
476
|
+
.pipe(map((responses) => {
|
|
477
|
+
// ApiUserResponse
|
|
478
|
+
this.handleSaveUserResponse(responses);
|
|
479
|
+
}));
|
|
480
|
+
// .pipe(this.handleError(false, true));
|
|
481
|
+
}
|
|
482
|
+
hasUnsavedChanges() {
|
|
483
|
+
return !this.user.equal(this.originUser);
|
|
484
|
+
}
|
|
485
|
+
setSimplifiedUser(user, token) {
|
|
486
|
+
this.user = new SimplifiedUser(user);
|
|
487
|
+
const copiedUser = JSON.parse(JSON.stringify(user));
|
|
488
|
+
this.originUser = new SimplifiedUser(copiedUser);
|
|
489
|
+
this.user.token = this.user.token || token;
|
|
490
|
+
this.originUser.token = this.originUser.token || token;
|
|
491
|
+
}
|
|
492
|
+
handleSaveUserResponse(responses) {
|
|
493
|
+
if (!(responses === null || responses === void 0 ? void 0 : responses.length)) {
|
|
494
|
+
return;
|
|
495
|
+
}
|
|
496
|
+
for (let len = responses.length, i = len - 1; i >= 0; i--) {
|
|
497
|
+
if (responses[i] && responses[i].currentUpdatedUser) {
|
|
498
|
+
// this.setUser(responses[i].currentUpdatedUser, false, this.user.token);
|
|
499
|
+
this.user.hasModifiedCache = true;
|
|
500
|
+
return;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
UserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, deps: [{ token: APIService }, { token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
506
|
+
UserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService });
|
|
507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserService, decorators: [{
|
|
508
|
+
type: Injectable
|
|
509
|
+
}], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }]; } });
|
|
510
|
+
|
|
511
|
+
const TTL_DEFAULT = 30000;
|
|
512
|
+
const TTL_LONG_DEFAULT = 45000;
|
|
513
|
+
var NotificationType;
|
|
514
|
+
(function (NotificationType) {
|
|
515
|
+
NotificationType["info"] = "info";
|
|
516
|
+
NotificationType["error"] = "error";
|
|
517
|
+
NotificationType["success"] = "success";
|
|
518
|
+
NotificationType["warning"] = "warning";
|
|
519
|
+
})(NotificationType || (NotificationType = {}));
|
|
520
|
+
class Notification {
|
|
521
|
+
constructor(data) {
|
|
522
|
+
this.ttl = TTL_DEFAULT;
|
|
523
|
+
Object.assign(this, data || {});
|
|
524
|
+
if (this.ttl === undefined) {
|
|
525
|
+
this.ttl = this.message && this.message.length && this.message.length < 80 ? TTL_DEFAULT : TTL_LONG_DEFAULT;
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
isInfo() {
|
|
529
|
+
return this.type === NotificationType.info;
|
|
530
|
+
}
|
|
531
|
+
isError() {
|
|
532
|
+
return this.type === NotificationType.error;
|
|
533
|
+
}
|
|
534
|
+
isSuccess() {
|
|
535
|
+
return this.type === NotificationType.success;
|
|
536
|
+
}
|
|
537
|
+
isWarning() {
|
|
538
|
+
return this.type === NotificationType.warning;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
const SUCCESS_TIME = 5000;
|
|
543
|
+
const INACTIVE_SESSION_MESSAGE = 'Your session was lost due to inactivity. Please login again';
|
|
544
|
+
const INACTIVE_SESSION = 'SESSION_INACTIVE';
|
|
545
|
+
class NotificationService {
|
|
546
|
+
constructor() {
|
|
547
|
+
this.listChange = new Subject();
|
|
548
|
+
this.max = 0;
|
|
549
|
+
this.list = [];
|
|
550
|
+
}
|
|
551
|
+
error(message, ttl) {
|
|
552
|
+
this.notify('error', message, ttl);
|
|
553
|
+
}
|
|
554
|
+
success(message, ttl) {
|
|
555
|
+
this.notify('success', message, (!ttl) ? SUCCESS_TIME : ttl);
|
|
556
|
+
}
|
|
557
|
+
warning(message, ttl) {
|
|
558
|
+
this.notify('warning', message, ttl);
|
|
559
|
+
}
|
|
560
|
+
info(message, ttl) {
|
|
561
|
+
this.notify('info', message, ttl);
|
|
562
|
+
}
|
|
563
|
+
notify(type, message, ttl) {
|
|
564
|
+
const found = this.list.find((n) => n.message === message);
|
|
565
|
+
if (found) {
|
|
566
|
+
this.remove(found);
|
|
567
|
+
}
|
|
568
|
+
const notification = new Notification({
|
|
569
|
+
id: ++this.max,
|
|
570
|
+
type, message, ttl
|
|
571
|
+
});
|
|
572
|
+
if (notification.ttl > 0) {
|
|
573
|
+
notification.timerId = setTimeout(() => this.remove(notification, true), notification.ttl);
|
|
574
|
+
}
|
|
575
|
+
this.list.push(notification);
|
|
576
|
+
this.listChange.next(this.list);
|
|
577
|
+
}
|
|
578
|
+
remove(notification, auto) {
|
|
579
|
+
if (!auto && notification.timerId) {
|
|
580
|
+
// clear timeout in case of manual remove
|
|
581
|
+
clearInterval(notification.timerId);
|
|
582
|
+
}
|
|
583
|
+
this.list = this.list.filter(n => n.id !== notification.id);
|
|
584
|
+
this.listChange.next(this.list);
|
|
585
|
+
}
|
|
586
|
+
removeInactiveSessionError() {
|
|
587
|
+
if (!this.list || !this.list.length) {
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
this.list = this.list.filter(n => n.message !== INACTIVE_SESSION_MESSAGE && n.message !== INACTIVE_SESSION);
|
|
591
|
+
this.listChange.next(this.list);
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
NotificationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
595
|
+
NotificationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService });
|
|
596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationService, decorators: [{
|
|
597
|
+
type: Injectable
|
|
598
|
+
}], ctorParameters: function () { return []; } });
|
|
599
|
+
|
|
600
|
+
class ListUser {
|
|
601
|
+
constructor(user, roleName) {
|
|
602
|
+
this.devices = [];
|
|
603
|
+
this.deviceProfiles = [];
|
|
604
|
+
this.isMigrated = false;
|
|
605
|
+
if (user) {
|
|
606
|
+
Object.assign(this, user);
|
|
607
|
+
}
|
|
608
|
+
if (roleName) {
|
|
609
|
+
this.roleName = roleName;
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
class RemoveKynFromIBMService {
|
|
615
|
+
constructor() {
|
|
616
|
+
}
|
|
617
|
+
removeCUCMS(date, customerId) {
|
|
618
|
+
if (customerId === 8) {
|
|
619
|
+
return date.filter((val) => !CUCMS_TO_IGNORE.includes(Math.round(val.cucmId)));
|
|
620
|
+
}
|
|
621
|
+
return date;
|
|
622
|
+
}
|
|
623
|
+
removeCUCS(date, customerId) {
|
|
624
|
+
if (customerId === 8) {
|
|
625
|
+
return date.filter((val) => !CUCS_TO_IGNORE.includes(Math.round(val.cucId)));
|
|
626
|
+
}
|
|
627
|
+
return date;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
RemoveKynFromIBMService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
631
|
+
RemoveKynFromIBMService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService });
|
|
632
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RemoveKynFromIBMService, decorators: [{
|
|
633
|
+
type: Injectable
|
|
634
|
+
}], ctorParameters: function () { return []; } });
|
|
635
|
+
|
|
636
|
+
class UsersSearchService {
|
|
637
|
+
constructor(apiService, webexApiService, removeKynFromIBMService) {
|
|
638
|
+
this.apiService = apiService;
|
|
639
|
+
this.webexApiService = webexApiService;
|
|
640
|
+
this.removeKynFromIBMService = removeKynFromIBMService;
|
|
641
|
+
this.siteId = -1;
|
|
642
|
+
this.userId = '';
|
|
643
|
+
this.userIdExistPending = false;
|
|
644
|
+
this.hasExistedUserId = false;
|
|
645
|
+
this.pageSize = PAGINATION_DEFAULTS.SIZE;
|
|
646
|
+
this.pageIndex = PAGINATION_DEFAULTS.SIZE;
|
|
647
|
+
this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
|
|
648
|
+
this.foundUsers$ = new BehaviorSubject(null);
|
|
649
|
+
}
|
|
650
|
+
getPagination() {
|
|
651
|
+
return {
|
|
652
|
+
total: this.total,
|
|
653
|
+
pageSizeOptions: this.pageSizeOptions,
|
|
654
|
+
pageSize: this.pageSize,
|
|
655
|
+
pageIndex: this.pageIndex
|
|
656
|
+
};
|
|
657
|
+
}
|
|
658
|
+
setDefaultValues() {
|
|
659
|
+
this.total = 0;
|
|
660
|
+
this.pageSize = PAGINATION_DEFAULTS.SIZE;
|
|
661
|
+
this.pageIndex = PAGINATION_DEFAULTS.INDEX;
|
|
662
|
+
this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
|
|
663
|
+
}
|
|
664
|
+
quickRegularUsersSearch(searchParams, isMigratedUsersOnly, pageSize) {
|
|
665
|
+
console.log('searchParams = ', searchParams);
|
|
666
|
+
this.searchParams = searchParams || { customerid: this.customerId, siteid: this.siteId };
|
|
667
|
+
this.searchParams['provisionType'] = 'CUCM';
|
|
668
|
+
return this.apiService.fetchPagination(API.QUICK_USERS_SEARCH, this.pageSize, pageSize || this.pageIndex, this.searchParams)
|
|
669
|
+
.pipe(map((res) => {
|
|
670
|
+
var _a;
|
|
671
|
+
// this.totals = this.totals || {};
|
|
672
|
+
// this.totals['users'] = res.total;
|
|
673
|
+
// this.foundUsers$.next(this.removeKynFromIBMService.removeCUCMS(users, this.customerId));
|
|
674
|
+
if (!isMigratedUsersOnly) {
|
|
675
|
+
const users = res.pageData && res.pageData.length ? res.pageData
|
|
676
|
+
.map(user => new ListUser(user, 'Dedicated Instance Calling user')) : [];
|
|
677
|
+
if ((_a = this.migratedUsersIds) === null || _a === void 0 ? void 0 : _a.length) {
|
|
678
|
+
this.setMigratedPropToUsers(users);
|
|
679
|
+
}
|
|
680
|
+
this.total = res.total;
|
|
681
|
+
this.foundUsers$.next(users);
|
|
682
|
+
}
|
|
683
|
+
else {
|
|
684
|
+
this.migratedUsersIds = res.pageData && res.pageData.length ? res.pageData
|
|
685
|
+
.map(user => user.userid) : [];
|
|
686
|
+
}
|
|
687
|
+
}));
|
|
688
|
+
// .pipe(this.handleError(true));
|
|
689
|
+
}
|
|
690
|
+
quickWebexUsersSearch(searchParams, isMigratedUsersOnly, pageSize) {
|
|
691
|
+
this.searchParams = searchParams || { customerid: this.customerId, siteid: this.siteId };
|
|
692
|
+
this.searchParams['provisionType'] = 'CUCM';
|
|
693
|
+
return this.webexApiService.fetchPagination(API.QUICK_USERS_SEARCH, this.pageSize, pageSize || this.pageIndex, this.searchParams)
|
|
694
|
+
.pipe(map((res) => {
|
|
695
|
+
var _a;
|
|
696
|
+
if (!isMigratedUsersOnly) {
|
|
697
|
+
const users = res.pageData && res.pageData.length ? res.pageData
|
|
698
|
+
.map(user => new ListUser(user, 'Dedicated Instance Calling user')) : [];
|
|
699
|
+
if ((_a = this.migratedUsersIds) === null || _a === void 0 ? void 0 : _a.length) {
|
|
700
|
+
this.setMigratedPropToUsers(users);
|
|
701
|
+
}
|
|
702
|
+
this.total = res.total;
|
|
703
|
+
this.foundUsers$.next(users);
|
|
704
|
+
}
|
|
705
|
+
else {
|
|
706
|
+
this.migratedUsersIds = res.pageData && res.pageData.length ? res.pageData
|
|
707
|
+
.map(user => user.userid) : [];
|
|
708
|
+
}
|
|
709
|
+
}));
|
|
710
|
+
// .pipe(this.handleError(true));
|
|
711
|
+
}
|
|
712
|
+
getMigratedUsers(customerId) {
|
|
713
|
+
return this.webexApiService.fetch(API.WEBEX_USERS.replace(':customerId', String(customerId)), {})
|
|
714
|
+
.pipe(map((result) => {
|
|
715
|
+
if (result && result.length) {
|
|
716
|
+
this.migratedUsers = result.filter((user) => user.webexUUID && user.devices && user.devices.length);
|
|
717
|
+
}
|
|
718
|
+
}));
|
|
719
|
+
}
|
|
720
|
+
getMigratedWebexUsers(customerId) {
|
|
721
|
+
const params = { customerid: customerId, type: 'PERSON' };
|
|
722
|
+
return this.webexApiService.fetch(API.MIGRATED_USERS.replace(':customerId', String(customerId)), params, true)
|
|
723
|
+
.pipe(map((result) => {
|
|
724
|
+
}));
|
|
725
|
+
}
|
|
726
|
+
setMigratedPropToUsers(users) {
|
|
727
|
+
users.forEach((user) => {
|
|
728
|
+
const migratedUser = this.migratedUsers.filter((migratedUser) => migratedUser.userid === user.email);
|
|
729
|
+
if (migratedUser && migratedUser[0]) {
|
|
730
|
+
user.roleName = '';
|
|
731
|
+
user.isMigrated = true;
|
|
732
|
+
user.status = 'Migrated';
|
|
733
|
+
user.webexUUID = migratedUser[0].webexUUID;
|
|
734
|
+
}
|
|
735
|
+
else {
|
|
736
|
+
user.roleName = 'Dedicated Instance Calling user';
|
|
737
|
+
user.isMigrated = false;
|
|
738
|
+
user.status = 'Active';
|
|
739
|
+
user.webexUUID = '';
|
|
740
|
+
}
|
|
741
|
+
});
|
|
742
|
+
console.log('users ttt', users);
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
UsersSearchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService, deps: [{ token: APIService }, { token: ApiWebexService }, { token: RemoveKynFromIBMService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
746
|
+
UsersSearchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService });
|
|
747
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersSearchService, decorators: [{
|
|
748
|
+
type: Injectable
|
|
749
|
+
}], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }, { type: RemoveKynFromIBMService }]; } });
|
|
750
|
+
|
|
751
|
+
class PaginationComponent {
|
|
752
|
+
constructor() {
|
|
753
|
+
this.pageEmitter = new EventEmitter();
|
|
754
|
+
this.pageNumberChangeEmitter = new EventEmitter();
|
|
755
|
+
this.pageSizeOptions = PAGINATION_SIZE_OPTIONS;
|
|
756
|
+
}
|
|
757
|
+
ngOnInit() {
|
|
758
|
+
}
|
|
759
|
+
pageEvent(event) {
|
|
760
|
+
this.pageEmitter.emit(event);
|
|
761
|
+
}
|
|
762
|
+
changePerPageNumber(event) {
|
|
763
|
+
this.pageNumberChangeEmitter.emit(event.value);
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
767
|
+
PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PaginationComponent, selector: "app-pagination", inputs: { pagination: "pagination", showPageSizeOptions: "showPageSizeOptions", showRefreshButton: "showRefreshButton", lengthPending: "lengthPending" }, outputs: { pageEmitter: "pageEmitter", pageNumberChangeEmitter: "pageNumberChangeEmitter" }, ngImport: i0, template: "<div class=\"flex-box pagination\">\r\n <div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n <mat-spinner class=\"length-spinner\" [diameter]=\"20\" mode=\"indeterminate\" *ngIf=\"lengthPending\">\r\n </mat-spinner>\r\n </div>\r\n\r\n <div class=\"flex-box per-page-block\" *ngIf=\"showPageSizeOptions\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select [(ngModel)]=\"pagination.pageSize\" (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [".search-header-refresh-icon{align-items:center;line-height:54px;margin-left:10px}button[mat-icon-button] i{font-size:18px}mat-spinner.length-spinner{position:absolute;right:120px}h3,.search-header-refresh-icon{float:left}.page-options,.mat-paginator{float:right}.per-page-block mat-form-field{width:70px!important}.per-page-block span{margin-right:20px}.pagination{display:flex;justify-content:flex-end}.select-page-size{width:60px;margin:0 0 0 15px;padding:0 10px}.item_per_page{line-height:35px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }] });
|
|
768
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PaginationComponent, decorators: [{
|
|
769
|
+
type: Component,
|
|
770
|
+
args: [{ selector: 'app-pagination', template: "<div class=\"flex-box pagination\">\r\n <div class=\"page-indexes-box\">\r\n <mat-paginator\r\n [id]=\"'commonPagination'\"\r\n [hidePageSize]=\"true\"\r\n [length]=\"pagination.total\"\r\n [pageIndex]=\"pagination.pageIndex\"\r\n [pageSize]=\"pagination.pageSize\"\r\n [pageSizeOptions]=\"pagination.pageSizeOptions\"\r\n (page)=\"pageEvent($event)\">\r\n </mat-paginator>\r\n <mat-spinner class=\"length-spinner\" [diameter]=\"20\" mode=\"indeterminate\" *ngIf=\"lengthPending\">\r\n </mat-spinner>\r\n </div>\r\n\r\n <div class=\"flex-box per-page-block\" *ngIf=\"showPageSizeOptions\">\r\n <div class=\"item_per_page\">Items per page:</div>\r\n <div class=\"select-box select-page-size\">\r\n <mat-select [(ngModel)]=\"pagination.pageSize\" (selectionChange)=\"changePerPageNumber($event)\" #page\r\n [id]=\"'commonPaginationSelect'\">\r\n <mat-option *ngFor=\"let option of pageSizeOptions; let i = index;\" [id]=\"'paginationSelectOpt_' + i\" [value]=\"option\">{{option}}</mat-option>\r\n </mat-select>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n", styles: [".search-header-refresh-icon{align-items:center;line-height:54px;margin-left:10px}button[mat-icon-button] i{font-size:18px}mat-spinner.length-spinner{position:absolute;right:120px}h3,.search-header-refresh-icon{float:left}.page-options,.mat-paginator{float:right}.per-page-block mat-form-field{width:70px!important}.per-page-block span{margin-right:20px}.pagination{display:flex;justify-content:flex-end}.select-page-size{width:60px;margin:0 0 0 15px;padding:0 10px}.item_per_page{line-height:35px}\n"] }]
|
|
771
|
+
}], ctorParameters: function () { return []; }, propDecorators: { pagination: [{
|
|
772
|
+
type: Input
|
|
773
|
+
}], showPageSizeOptions: [{
|
|
774
|
+
type: Input
|
|
775
|
+
}], showRefreshButton: [{
|
|
776
|
+
type: Input
|
|
777
|
+
}], lengthPending: [{
|
|
778
|
+
type: Input
|
|
779
|
+
}], pageEmitter: [{
|
|
780
|
+
type: Output
|
|
781
|
+
}], pageNumberChangeEmitter: [{
|
|
782
|
+
type: Output
|
|
783
|
+
}] } });
|
|
784
|
+
|
|
785
|
+
class AppLoaderComponent {
|
|
786
|
+
constructor() {
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
AppLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
790
|
+
AppLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AppLoaderComponent, selector: "app-loader", ngImport: i0, template: "<div class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"120\"></mat-progress-spinner>\r\n</div>\r\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}\n"], dependencies: [{ kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
791
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AppLoaderComponent, decorators: [{
|
|
792
|
+
type: Component,
|
|
793
|
+
args: [{ selector: 'app-loader', encapsulation: ViewEncapsulation.None, template: "<div class=\"overlay\">\r\n <mat-progress-spinner\r\n class=\"page-spinner\"\r\n mode=\"indeterminate\"\r\n [diameter]=\"120\"></mat-progress-spinner>\r\n</div>\r\n", styles: [".overlay{position:fixed;width:100%;height:100%;inset:0;background-color:#fff3;z-index:200}\n"] }]
|
|
794
|
+
}], ctorParameters: function () { return []; } });
|
|
795
|
+
|
|
796
|
+
var EntityChangeType;
|
|
797
|
+
(function (EntityChangeType) {
|
|
798
|
+
EntityChangeType["added"] = "added";
|
|
799
|
+
EntityChangeType["updated"] = "updated";
|
|
800
|
+
EntityChangeType["existing"] = "existing";
|
|
801
|
+
EntityChangeType["removed"] = "removed";
|
|
802
|
+
EntityChangeType["unassociated"] = "unassociated";
|
|
803
|
+
})(EntityChangeType || (EntityChangeType = {}));
|
|
804
|
+
var DnRangeType;
|
|
805
|
+
(function (DnRangeType) {
|
|
806
|
+
DnRangeType["extension"] = "EXTENSION";
|
|
807
|
+
DnRangeType["cpg"] = "CPG";
|
|
808
|
+
DnRangeType["callpark"] = "CALLPARK";
|
|
809
|
+
DnRangeType["huntgroup"] = "HUNTGROUP";
|
|
810
|
+
DnRangeType["meetme"] = "MEETME";
|
|
811
|
+
DnRangeType["did"] = "DID";
|
|
812
|
+
})(DnRangeType || (DnRangeType = {}));
|
|
813
|
+
|
|
814
|
+
class DnsService {
|
|
815
|
+
constructor(apiService, apiWebexService) {
|
|
816
|
+
this.apiService = apiService;
|
|
817
|
+
this.apiWebexService = apiWebexService;
|
|
818
|
+
this.availableNumbers = {};
|
|
819
|
+
this.phoneNumbers = [];
|
|
820
|
+
}
|
|
821
|
+
getNumberRange(siteId, routePartition, withdids, from, pageSize) {
|
|
822
|
+
var _a;
|
|
823
|
+
// @ts-ignore
|
|
824
|
+
if ((_a = this.availableNumbers[routePartition]) === null || _a === void 0 ? void 0 : _a.length) {
|
|
825
|
+
return new Observable(observer => {
|
|
826
|
+
// @ts-ignore
|
|
827
|
+
observer.next(this.availableNumbers[routePartition]);
|
|
828
|
+
});
|
|
829
|
+
}
|
|
830
|
+
this.availableDidPatternsMappedToDn = {};
|
|
831
|
+
pageSize = pageSize ? pageSize : 20;
|
|
832
|
+
const params = { dntype: DnRangeType.extension, routepartition: routePartition, size: pageSize, page: 0 };
|
|
833
|
+
if (withdids) {
|
|
834
|
+
// @ts-ignore
|
|
835
|
+
params['withdids'] = 'true';
|
|
836
|
+
}
|
|
837
|
+
if (from) {
|
|
838
|
+
// @ts-ignore
|
|
839
|
+
params['from'] = from;
|
|
840
|
+
}
|
|
841
|
+
// @ts-ignore
|
|
842
|
+
this.availableNumbers[routePartition] = this.availableNumbers[routePartition] || [];
|
|
843
|
+
return this.apiService.fetch(API.AVAILABLE_DN_IN_RANGES.replace(':siteId', siteId), params)
|
|
844
|
+
.pipe(map((res) => {
|
|
845
|
+
res.availableNumberList.forEach((availableNumber) => {
|
|
846
|
+
this.setAvailableDidMappedToDn(availableNumber);
|
|
847
|
+
// @ts-ignore
|
|
848
|
+
this.availableNumbers[routePartition] = [...this.availableNumbers[routePartition], ...this.getUnwrapNumberRange(availableNumber)];
|
|
849
|
+
});
|
|
850
|
+
}));
|
|
851
|
+
// .pipe(this.handleError(true, false));
|
|
852
|
+
}
|
|
853
|
+
setAvailableDidMappedToDn(availableNumber) {
|
|
854
|
+
if (availableNumber.unUsedNumbersWithDids && availableNumber.unUsedNumbersWithDids.length) {
|
|
855
|
+
availableNumber.unUsedNumbersWithDids.forEach((numberWithDids) => {
|
|
856
|
+
const dn = numberWithDids['unUsedNumber'];
|
|
857
|
+
this.availableDidPatternsMappedToDn[dn] = [{}];
|
|
858
|
+
if (numberWithDids['translationPatternList'] && numberWithDids['translationPatternList'].length > 0) {
|
|
859
|
+
this.availableDidPatternsMappedToDn[dn] = numberWithDids['translationPatternList'];
|
|
860
|
+
this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] = [{}];
|
|
861
|
+
if (numberWithDids['mappedDids'] && numberWithDids['mappedDids'].length > 0) {
|
|
862
|
+
this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] = numberWithDids['mappedDids'];
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
this.availableDidPatternsMappedToDn[dn][0]['vm'] = numberWithDids['vm'];
|
|
866
|
+
});
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
getUnwrapNumberRange(availableNumber) {
|
|
870
|
+
let unwrapNumberRange = this.unwrapNumberRange(availableNumber.phoneNumberRange.from, availableNumber.phoneNumberRange.to)
|
|
871
|
+
.map((unwrappedNumber) => {
|
|
872
|
+
const dn = availableNumber.phoneNumberRange.prefix + unwrappedNumber;
|
|
873
|
+
let str = dn;
|
|
874
|
+
if (this.availableDidPatternsMappedToDn[dn] && this.availableDidPatternsMappedToDn[dn].length > 0) {
|
|
875
|
+
if (this.availableDidPatternsMappedToDn[dn][0]['mappedDids'] && this.availableDidPatternsMappedToDn[dn][0]['mappedDids'].length > 0) {
|
|
876
|
+
str += ' DID: ' + (this.availableDidPatternsMappedToDn[dn][0]['mappedDids'].length > 1 ? 'multiple' :
|
|
877
|
+
this.availableDidPatternsMappedToDn[dn][0]['mappedDids'][0]);
|
|
878
|
+
}
|
|
879
|
+
if (this.availableDidPatternsMappedToDn[dn][0]['vm']) {
|
|
880
|
+
str += ' In Use - VM';
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
return str;
|
|
884
|
+
});
|
|
885
|
+
unwrapNumberRange = unwrapNumberRange.filter((unwrappedNumber) => !availableNumber.usedNumbers.includes(unwrappedNumber));
|
|
886
|
+
return unwrapNumberRange;
|
|
887
|
+
}
|
|
888
|
+
unwrapNumberRange(start, end) {
|
|
889
|
+
const regExp = /(^0+)/;
|
|
890
|
+
let leadingZeros = '';
|
|
891
|
+
const matches = start.match(regExp);
|
|
892
|
+
if (matches) {
|
|
893
|
+
leadingZeros = matches[1];
|
|
894
|
+
}
|
|
895
|
+
const startNumeric = new Big(start);
|
|
896
|
+
const endNumeric = new Big(end);
|
|
897
|
+
// @ts-ignore
|
|
898
|
+
return Array.from({ length: (endNumeric.minus(startNumeric).plus(new Big(1)).toFixed(0)) }, (v, k) => {
|
|
899
|
+
const number = String(startNumeric.plus(new Big(k)).toFixed(0));
|
|
900
|
+
if ((leadingZeros + number).length > start.length) {
|
|
901
|
+
leadingZeros = leadingZeros.substr(1);
|
|
902
|
+
}
|
|
903
|
+
return leadingZeros + number;
|
|
904
|
+
});
|
|
905
|
+
}
|
|
906
|
+
fetchPhoneNumbers(customerId, locationId) {
|
|
907
|
+
const params = {
|
|
908
|
+
available: true,
|
|
909
|
+
numberType: 'NUMBER'
|
|
910
|
+
};
|
|
911
|
+
return this.apiWebexService.fetch(API.PHONE_NUMBERS.replace(':customerId', String(customerId)).replace(':locationId', locationId), params)
|
|
912
|
+
.pipe(map((result) => {
|
|
913
|
+
if (result === null || result === void 0 ? void 0 : result.length) {
|
|
914
|
+
this.phoneNumbers = result.map((item) => item.phoneNumber);
|
|
915
|
+
}
|
|
916
|
+
return result;
|
|
917
|
+
}));
|
|
918
|
+
}
|
|
919
|
+
}
|
|
920
|
+
DnsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService, deps: [{ token: APIService }, { token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
921
|
+
DnsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService });
|
|
922
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DnsService, decorators: [{
|
|
923
|
+
type: Injectable
|
|
924
|
+
}], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }]; } });
|
|
925
|
+
|
|
926
|
+
class AppLocation {
|
|
927
|
+
constructor(props) {
|
|
928
|
+
this.id = '';
|
|
929
|
+
this.name = '';
|
|
930
|
+
this.timeZone = '';
|
|
931
|
+
this.address = new LocationAddress();
|
|
932
|
+
if (props) {
|
|
933
|
+
this.id = props.id || '';
|
|
934
|
+
this.name = props.name || '';
|
|
935
|
+
this.timeZone = props.timeZone || '';
|
|
936
|
+
this.address = new LocationAddress(props.address);
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
class LocationAddress {
|
|
941
|
+
constructor(props) {
|
|
942
|
+
this.country = '';
|
|
943
|
+
this.countryName = '';
|
|
944
|
+
this.state = '';
|
|
945
|
+
this.city = '';
|
|
946
|
+
this.postalCode = '';
|
|
947
|
+
this.address1 = '';
|
|
948
|
+
this.address2 = '';
|
|
949
|
+
if (props) {
|
|
950
|
+
['country', 'countryName', 'state', 'city', 'postalCode', 'address1', 'address2'].forEach(token => {
|
|
951
|
+
// @ts-ignore
|
|
952
|
+
this[token] = props[token] || '';
|
|
953
|
+
});
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
class PrepareMigrationData {
|
|
959
|
+
constructor(data, originData) {
|
|
960
|
+
var _a, _b, _c, _d;
|
|
961
|
+
this.customerId = 0;
|
|
962
|
+
this.siteId = 0;
|
|
963
|
+
this.cucmId = 0;
|
|
964
|
+
this.entityId = '';
|
|
965
|
+
this.devices = [];
|
|
966
|
+
this.softDevices = [];
|
|
967
|
+
this.notSupportedDevices = [];
|
|
968
|
+
this.primaryExtension = '';
|
|
969
|
+
this.newExtension = '';
|
|
970
|
+
this.removeExtension = false;
|
|
971
|
+
this.primaryPhoneNumber = '';
|
|
972
|
+
this.newPhoneNumber = '';
|
|
973
|
+
this.removePhoneNumber = false;
|
|
974
|
+
this.newLocation = null;
|
|
975
|
+
this.newLocationName = '';
|
|
976
|
+
this.phoneNumberWithExtension = [];
|
|
977
|
+
this.moveType = new MoveType();
|
|
978
|
+
this.errors = [];
|
|
979
|
+
this.pending = false;
|
|
980
|
+
this.isConfirm = false;
|
|
981
|
+
if (data) {
|
|
982
|
+
this.customerId = data.customerId;
|
|
983
|
+
this.siteId = data.siteId;
|
|
984
|
+
this.cucmId = data.cucmId;
|
|
985
|
+
this.entityId = data.entityId;
|
|
986
|
+
this.primaryExtension = data.primaryExtension || '';
|
|
987
|
+
this.primaryPhoneNumber = data.primaryPhoneNumber || '';
|
|
988
|
+
this.newLocation = (originData === null || originData === void 0 ? void 0 : originData.newLocation) || new AppLocation(data.newLocation) || this.newLocation;
|
|
989
|
+
this.errors = data.errors;
|
|
990
|
+
this.phoneNumberWithExtension = ((_a = data.phoneNumberWithExtension) === null || _a === void 0 ? void 0 : _a.length) ? data.phoneNumberWithExtension.map((item) => new PhoneNumberWithExtension(item)) : [];
|
|
991
|
+
this.devices = ((_b = data.devices) === null || _b === void 0 ? void 0 : _b.length) ? data.devices.map((deviceData) => new PrepareMigrationDevice(deviceData, true, false, true)) : [];
|
|
992
|
+
this.softDevices = ((_c = data.softDevices) === null || _c === void 0 ? void 0 : _c.length) ? data.softDevices.map((deviceData) => new PrepareMigrationDevice(deviceData, true, true, true)) : [];
|
|
993
|
+
this.notSupportedDevices = ((_d = data.notSupportedDevices) === null || _d === void 0 ? void 0 : _d.length) ? data.notSupportedDevices.map((deviceData) => new PrepareMigrationDevice(deviceData, false, true, false)) : [];
|
|
994
|
+
}
|
|
995
|
+
if (originData) {
|
|
996
|
+
this.moveType = originData.moveType;
|
|
997
|
+
}
|
|
998
|
+
}
|
|
999
|
+
eligibleDevicesSize() {
|
|
1000
|
+
return this.devices.length + this.softDevices.length;
|
|
1001
|
+
}
|
|
1002
|
+
getSavableData() {
|
|
1003
|
+
return getSavableData(this, ['pending', 'isConfirm']);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
class PrepareMigrationDevice {
|
|
1007
|
+
constructor(data, toMigrate, isToMigrateDisabled, isEligible) {
|
|
1008
|
+
var _a, _b, _c, _d, _e, _f;
|
|
1009
|
+
this.toMigrate = false;
|
|
1010
|
+
this.isToMigrateDisabled = false;
|
|
1011
|
+
this.isEligible = false;
|
|
1012
|
+
this.name = '';
|
|
1013
|
+
if (data) {
|
|
1014
|
+
this.id = (_a = data.id) !== null && _a !== void 0 ? _a : null;
|
|
1015
|
+
this.mac = data.mac;
|
|
1016
|
+
this.name = data.name;
|
|
1017
|
+
this.product = data.product;
|
|
1018
|
+
this.model = data.model;
|
|
1019
|
+
this.cisUuid = (_b = data.cisUuid) !== null && _b !== void 0 ? _b : null;
|
|
1020
|
+
this.deviceId = (_c = data.deviceId) !== null && _c !== void 0 ? _c : null;
|
|
1021
|
+
this.personId = (_d = data.personId) !== null && _d !== void 0 ? _d : null;
|
|
1022
|
+
this.workspaceId = (_e = data.workspaceId) !== null && _e !== void 0 ? _e : null;
|
|
1023
|
+
this.locationId = (_f = data.locationId) !== null && _f !== void 0 ? _f : null;
|
|
1024
|
+
}
|
|
1025
|
+
this.toMigrate = toMigrate || this.toMigrate;
|
|
1026
|
+
this.isToMigrateDisabled = isToMigrateDisabled || this.isToMigrateDisabled;
|
|
1027
|
+
this.isEligible = isEligible || this.isEligible;
|
|
1028
|
+
}
|
|
1029
|
+
getSavableData() {
|
|
1030
|
+
const excludedFields = ['toMigrate', 'isToMigrateDisabled'];
|
|
1031
|
+
return getSavableData(this, excludedFields);
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
class PhoneNumberWithExtension {
|
|
1035
|
+
constructor(item) {
|
|
1036
|
+
this.extension = '';
|
|
1037
|
+
this.phoneNumber = '';
|
|
1038
|
+
this.extension = item.extension;
|
|
1039
|
+
this.phoneNumber = item.phoneNumber;
|
|
1040
|
+
}
|
|
1041
|
+
getSavableData() {
|
|
1042
|
+
const excludedFields = ['form'];
|
|
1043
|
+
return getSavableData(this, excludedFields);
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
class PrepareMigrationBody {
|
|
1047
|
+
constructor(userList, customerId, locationId) {
|
|
1048
|
+
this.customerId = 0;
|
|
1049
|
+
this.locationId = '';
|
|
1050
|
+
this.customerId = customerId || this.customerId;
|
|
1051
|
+
this.locationId = locationId || this.locationId;
|
|
1052
|
+
this.entities = new PrepareMigrationEntity(userList.cucmId, userList.userid);
|
|
1053
|
+
}
|
|
1054
|
+
getSavableData() {
|
|
1055
|
+
return getSavableData(this);
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
class PrepareMigrationEntity {
|
|
1059
|
+
constructor(cucmId, entityId) {
|
|
1060
|
+
this.PERSON = [];
|
|
1061
|
+
this.PERSON.push(new PersonMigrationEntity(cucmId, entityId));
|
|
1062
|
+
}
|
|
1063
|
+
getSavableData() {
|
|
1064
|
+
const excludedFields = ['form'];
|
|
1065
|
+
return getSavableData(this, excludedFields);
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
class PersonMigrationEntity {
|
|
1069
|
+
constructor(cucmId, entityId) {
|
|
1070
|
+
this.entityId = '';
|
|
1071
|
+
this.cucmId = cucmId;
|
|
1072
|
+
this.entityId = entityId || this.entityId;
|
|
1073
|
+
}
|
|
1074
|
+
getSavableData() {
|
|
1075
|
+
const excludedFields = ['form'];
|
|
1076
|
+
return getSavableData(this, excludedFields);
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
class MigrationData {
|
|
1080
|
+
constructor(data) {
|
|
1081
|
+
var _a;
|
|
1082
|
+
this.customerId = 0;
|
|
1083
|
+
this.siteId = 0;
|
|
1084
|
+
this.cucmId = 0;
|
|
1085
|
+
this.entityId = '';
|
|
1086
|
+
this.primaryExtension = '';
|
|
1087
|
+
this.primaryPhoneNumber = '';
|
|
1088
|
+
this.devices = [];
|
|
1089
|
+
this.phoneNumberWithExtension = [];
|
|
1090
|
+
this.customerId = data.customerId;
|
|
1091
|
+
this.siteId = data.siteId;
|
|
1092
|
+
this.cucmId = data.cucmId;
|
|
1093
|
+
this.entityId = data.entityId;
|
|
1094
|
+
if (data.newExtension) {
|
|
1095
|
+
this.primaryExtension = data.newExtension;
|
|
1096
|
+
}
|
|
1097
|
+
else if (data.removeExtension) {
|
|
1098
|
+
this.primaryExtension = null;
|
|
1099
|
+
}
|
|
1100
|
+
else {
|
|
1101
|
+
this.primaryExtension = data.primaryExtension;
|
|
1102
|
+
}
|
|
1103
|
+
if (data.newPhoneNumber) {
|
|
1104
|
+
this.primaryPhoneNumber = data.newPhoneNumber;
|
|
1105
|
+
}
|
|
1106
|
+
else if (data.removePhoneNumber) {
|
|
1107
|
+
this.primaryPhoneNumber = null;
|
|
1108
|
+
}
|
|
1109
|
+
else {
|
|
1110
|
+
this.primaryPhoneNumber = data.primaryPhoneNumber;
|
|
1111
|
+
}
|
|
1112
|
+
this.phoneNumberWithExtension = data.phoneNumberWithExtension;
|
|
1113
|
+
if ((_a = data.devices) === null || _a === void 0 ? void 0 : _a.length) {
|
|
1114
|
+
data.devices.map(device => {
|
|
1115
|
+
if (device.toMigrate && device.mac) {
|
|
1116
|
+
this.devices.push(device.mac);
|
|
1117
|
+
}
|
|
1118
|
+
});
|
|
1119
|
+
}
|
|
1120
|
+
}
|
|
1121
|
+
getSavableData() {
|
|
1122
|
+
const excludedFields = ['form'];
|
|
1123
|
+
return getSavableData(this, excludedFields);
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
class MoveType {
|
|
1127
|
+
constructor(data) {
|
|
1128
|
+
this.phoneNumber = '1';
|
|
1129
|
+
this.extension = '1';
|
|
1130
|
+
if (data) {
|
|
1131
|
+
this.phoneNumber = data.phoneNumber;
|
|
1132
|
+
this.extension = data.extension;
|
|
1133
|
+
}
|
|
1134
|
+
}
|
|
1135
|
+
}
|
|
1136
|
+
|
|
1137
|
+
class SiteSettingsService {
|
|
1138
|
+
constructor(apiWebexService) {
|
|
1139
|
+
this.apiWebexService = apiWebexService;
|
|
1140
|
+
this.locations = [];
|
|
1141
|
+
}
|
|
1142
|
+
getLocations(customerId) {
|
|
1143
|
+
return this.apiWebexService.fetch(API.GET_LOCATIONS.replace(':customerId', String(customerId)), {})
|
|
1144
|
+
.pipe(map((result) => {
|
|
1145
|
+
if (result && result.length) {
|
|
1146
|
+
this.locations = result.map((location) => new AppLocation(location));
|
|
1147
|
+
}
|
|
1148
|
+
return result;
|
|
1149
|
+
}));
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
SiteSettingsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SiteSettingsService, deps: [{ token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1153
|
+
SiteSettingsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SiteSettingsService });
|
|
1154
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SiteSettingsService, decorators: [{
|
|
1155
|
+
type: Injectable
|
|
1156
|
+
}], ctorParameters: function () { return [{ type: ApiWebexService }]; } });
|
|
1157
|
+
|
|
1158
|
+
class MoveUserService {
|
|
1159
|
+
constructor(apiService, apiWebexService) {
|
|
1160
|
+
this.apiService = apiService;
|
|
1161
|
+
this.apiWebexService = apiWebexService;
|
|
1162
|
+
}
|
|
1163
|
+
resetMigrationDataForNewLocation() {
|
|
1164
|
+
this.prepareMigrationData.newExtension = '';
|
|
1165
|
+
this.prepareMigrationData.newPhoneNumber = '';
|
|
1166
|
+
this.prepareMigrationData.newExtension = '';
|
|
1167
|
+
}
|
|
1168
|
+
setOriginPrepareMigrationData() {
|
|
1169
|
+
const data = JSON.parse(JSON.stringify(this.prepareMigrationData.getSavableData()));
|
|
1170
|
+
this.originPrepareMigrationData = new PrepareMigrationData(data);
|
|
1171
|
+
}
|
|
1172
|
+
fetchPrepareMigrationData(data) {
|
|
1173
|
+
return this.apiWebexService.post(API.PREPARE_PERSON_MIGRATION, data.getSavableData())
|
|
1174
|
+
.pipe(map((result) => {
|
|
1175
|
+
if (result) {
|
|
1176
|
+
this.prepareMigrationData = new PrepareMigrationData(result, this.originPrepareMigrationData);
|
|
1177
|
+
}
|
|
1178
|
+
return result;
|
|
1179
|
+
}));
|
|
1180
|
+
// .pipe(this.handleError(false, true));
|
|
1181
|
+
}
|
|
1182
|
+
startMigration(data) {
|
|
1183
|
+
/* return new Observable<boolean>(observer => {
|
|
1184
|
+
setTimeout(() => {
|
|
1185
|
+
observer.next(true);
|
|
1186
|
+
|
|
1187
|
+
}, 2000);
|
|
1188
|
+
});*/
|
|
1189
|
+
return this.apiWebexService.post(API.START_MIGRATION, data.getSavableData())
|
|
1190
|
+
.pipe(map((result) => {
|
|
1191
|
+
if (data) {
|
|
1192
|
+
this.prepareMigrationData = new PrepareMigrationData(data);
|
|
1193
|
+
}
|
|
1194
|
+
}));
|
|
1195
|
+
// .pipe(this.handleError(false, true));
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
MoveUserService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserService, deps: [{ token: APIService }, { token: ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1199
|
+
MoveUserService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserService });
|
|
1200
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserService, decorators: [{
|
|
1201
|
+
type: Injectable
|
|
1202
|
+
}], ctorParameters: function () { return [{ type: APIService }, { type: ApiWebexService }]; } });
|
|
1203
|
+
|
|
1204
|
+
class DeviceMoveUserWizardComponent {
|
|
1205
|
+
get moveUserPending() {
|
|
1206
|
+
return this.userService.moveUserPending;
|
|
1207
|
+
}
|
|
1208
|
+
get locations() {
|
|
1209
|
+
return this.siteSettingsService.locations;
|
|
1210
|
+
}
|
|
1211
|
+
constructor(dnsService, userService, siteSettingsService) {
|
|
1212
|
+
this.dnsService = dnsService;
|
|
1213
|
+
this.userService = userService;
|
|
1214
|
+
this.siteSettingsService = siteSettingsService;
|
|
1215
|
+
}
|
|
1216
|
+
ngOnInit() {
|
|
1217
|
+
}
|
|
1218
|
+
onMigrateDeviceChecked(event) {
|
|
1219
|
+
}
|
|
1220
|
+
resetMoveTypePhoneNUmber() {
|
|
1221
|
+
this.dnsService.phoneNumbers = [];
|
|
1222
|
+
}
|
|
1223
|
+
}
|
|
1224
|
+
DeviceMoveUserWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceMoveUserWizardComponent, deps: [{ token: DnsService }, { token: UserService }, { token: SiteSettingsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1225
|
+
DeviceMoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DeviceMoveUserWizardComponent, selector: "app-device-move-user-wizard", inputs: { device: "device" }, ngImport: i0, template: "<form>\r\n <div class=\"device-item-panel-container\">\r\n <div class=\"device-left\">\r\n <div\r\n class=\"device-migration-status\"\r\n [ngClass]=\"{'--checked': device.toMigrate}\"\r\n >\r\n <mat-checkbox\r\n class=\"rounded\"\r\n [checked]=\"device.toMigrate\"\r\n ></mat-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"device-right\">\r\n <div class=\"device-header\">\r\n <div class=\"device-name\">{{ device.name }}</div>\r\n <div class=\"device-migrate\" *ngIf=\"device.isEligible\">\r\n <mat-checkbox name=\"toMigrate\"\r\n [(ngModel)]=\"device.toMigrate\"\r\n >Migrate this device</mat-checkbox>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"device-info\">\r\n <div *ngIf=\"device.product\" class=\"device-info__item\">\r\n <div class=\"key\">Device type</div>\r\n <div class=\"value\">{{ device.product }}</div>\r\n </div>\r\n <div *ngIf=\"device.mac\" class=\"device-info__item\">\r\n <div class=\"key\">MAC address</div>\r\n <div class=\"value\">{{ device.mac }}</div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".device-item-panel-container{display:flex;border:1px solid gray;border-radius:.5rem;margin-bottom:1.5rem;overflow:hidden}.device-migration-status{height:100%;padding:1rem;background-color:#ffebc2}.device-right{width:100%;display:flex;flex-direction:column;justify-content:space-between;padding:1rem 2rem}.device-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 7px}.device-header .device-name{font-size:18px;font-weight:700}.device-header .device-migrate{font-weight:700}.device-header .device-migrate .mat-checkbox ::ng-deep .mat-checkbox-label{margin-left:.4rem}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-info{display:grid;grid-template-columns:auto auto;gap:2.5rem}.device-info__item{font-size:16px;font-weight:700}.device-info__item .key{margin:10px 0 0}.device-info__item .value{color:#a0a0a0}.--checked{background-color:#cef5eb}.mat-checkbox ::ng-deep .mat-checkbox-inner-container{width:20px;height:20px}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#185e46}::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .rounded{pointer-events:none}::ng-deep .rounded .mat-checkbox-background,::ng-deep .rounded .mat-checkbox-frame{border-radius:50%!important}::ng-deep .mat-divider{display:block;margin:0;border-top-width:2px;border-top-style:solid}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
1226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DeviceMoveUserWizardComponent, decorators: [{
|
|
1227
|
+
type: Component,
|
|
1228
|
+
args: [{ selector: 'app-device-move-user-wizard', template: "<form>\r\n <div class=\"device-item-panel-container\">\r\n <div class=\"device-left\">\r\n <div\r\n class=\"device-migration-status\"\r\n [ngClass]=\"{'--checked': device.toMigrate}\"\r\n >\r\n <mat-checkbox\r\n class=\"rounded\"\r\n [checked]=\"device.toMigrate\"\r\n ></mat-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"device-right\">\r\n <div class=\"device-header\">\r\n <div class=\"device-name\">{{ device.name }}</div>\r\n <div class=\"device-migrate\" *ngIf=\"device.isEligible\">\r\n <mat-checkbox name=\"toMigrate\"\r\n [(ngModel)]=\"device.toMigrate\"\r\n >Migrate this device</mat-checkbox>\r\n </div>\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div class=\"device-info\">\r\n <div *ngIf=\"device.product\" class=\"device-info__item\">\r\n <div class=\"key\">Device type</div>\r\n <div class=\"value\">{{ device.product }}</div>\r\n </div>\r\n <div *ngIf=\"device.mac\" class=\"device-info__item\">\r\n <div class=\"key\">MAC address</div>\r\n <div class=\"value\">{{ device.mac }}</div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [".device-item-panel-container{display:flex;border:1px solid gray;border-radius:.5rem;margin-bottom:1.5rem;overflow:hidden}.device-migration-status{height:100%;padding:1rem;background-color:#ffebc2}.device-right{width:100%;display:flex;flex-direction:column;justify-content:space-between;padding:1rem 2rem}.device-header{display:flex;justify-content:space-between;align-items:center;padding:0 0 7px}.device-header .device-name{font-size:18px;font-weight:700}.device-header .device-migrate{font-weight:700}.device-header .device-migrate .mat-checkbox ::ng-deep .mat-checkbox-label{margin-left:.4rem}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,.device-header .device-migrate ::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#05f!important}.device-header .device-migrate ::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#05f!important}.device-info{display:grid;grid-template-columns:auto auto;gap:2.5rem}.device-info__item{font-size:16px;font-weight:700}.device-info__item .key{margin:10px 0 0}.device-info__item .value{color:#a0a0a0}.--checked{background-color:#cef5eb}.mat-checkbox ::ng-deep .mat-checkbox-inner-container{width:20px;height:20px}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-background,::ng-deep .mat-checkbox-checked.mat-accent .mat-checkbox-indeterminate.mat-accent .mat-checkbox-background{background-color:#185e46}::ng-deep .mat-checkbox.mat-accent .mat-checkbox-ripple .mat-ripple-element{background-color:#185e46!important}::ng-deep .rounded{pointer-events:none}::ng-deep .rounded .mat-checkbox-background,::ng-deep .rounded .mat-checkbox-frame{border-radius:50%!important}::ng-deep .mat-divider{display:block;margin:0;border-top-width:2px;border-top-style:solid}\n"] }]
|
|
1229
|
+
}], ctorParameters: function () { return [{ type: DnsService }, { type: UserService }, { type: SiteSettingsService }]; }, propDecorators: { device: [{
|
|
1230
|
+
type: Input
|
|
1231
|
+
}] } });
|
|
1232
|
+
|
|
1233
|
+
class DevicesMoveUserWizardTabComponent {
|
|
1234
|
+
get prepareMigrationData() {
|
|
1235
|
+
return this.moveUserService.prepareMigrationData;
|
|
1236
|
+
}
|
|
1237
|
+
constructor(moveUserService) {
|
|
1238
|
+
this.moveUserService = moveUserService;
|
|
1239
|
+
}
|
|
1240
|
+
ngOnInit() {
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
DevicesMoveUserWizardTabComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DevicesMoveUserWizardTabComponent, deps: [{ token: MoveUserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1244
|
+
DevicesMoveUserWizardTabComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DevicesMoveUserWizardTabComponent, selector: "app-devices-move-user-tab", ngImport: i0, template: "<div *ngIf=\"prepareMigrationData.eligibleDevicesSize\"\r\n class=\"devices-move-user-box eligible-devices-section\" >\r\n <div class=\"section-title\">Eligible devices ({{ prepareMigrationData.eligibleDevicesSize() }})</div>\r\n <div class=\"section-content\">\r\n <div *ngIf=\"prepareMigrationData.devices?.length\" class=\"device-group\">\r\n <div class=\"group-title\">IP Phones</div>\r\n <ng-container *ngFor=\"let device of prepareMigrationData.devices\">\r\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"prepareMigrationData.softDevices?.length\" class=\"device-group\">\r\n <div class=\"group-title\">Soft Devices</div>\r\n <ng-container *ngFor=\"let device of prepareMigrationData.softDevices\">\r\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-divider *ngIf=\"prepareMigrationData.notSupportedDevices.length\"></mat-divider>\r\n<div *ngIf=\"prepareMigrationData.notSupportedDevices.length\" class=\"ineligible-devices-section\">\r\n <div class=\"section-title\">Ineligible devices ({{ prepareMigrationData.notSupportedDevices.length }})</div>\r\n <div class=\"section-content\">\r\n <div class=\"device-group\">\r\n <ng-container *ngFor=\"let device of prepareMigrationData.notSupportedDevices\">\r\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".eligible-devices-section,.ineligible-devices-section{display:flex;padding:1.5rem}.eligible-devices-section .section-title,.ineligible-devices-section .section-title{font-size:18px;font-weight:700;padding:0 .5rem;width:300px}.eligible-devices-section .section-content,.ineligible-devices-section .section-content{width:100%}.group-title{font-size:18px;font-weight:700;margin-bottom:1rem}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DeviceMoveUserWizardComponent, selector: "app-device-move-user-wizard", inputs: ["device"] }] });
|
|
1245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DevicesMoveUserWizardTabComponent, decorators: [{
|
|
1246
|
+
type: Component,
|
|
1247
|
+
args: [{ selector: 'app-devices-move-user-tab', template: "<div *ngIf=\"prepareMigrationData.eligibleDevicesSize\"\r\n class=\"devices-move-user-box eligible-devices-section\" >\r\n <div class=\"section-title\">Eligible devices ({{ prepareMigrationData.eligibleDevicesSize() }})</div>\r\n <div class=\"section-content\">\r\n <div *ngIf=\"prepareMigrationData.devices?.length\" class=\"device-group\">\r\n <div class=\"group-title\">IP Phones</div>\r\n <ng-container *ngFor=\"let device of prepareMigrationData.devices\">\r\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\r\n </ng-container>\r\n </div>\r\n\r\n <div *ngIf=\"prepareMigrationData.softDevices?.length\" class=\"device-group\">\r\n <div class=\"group-title\">Soft Devices</div>\r\n <ng-container *ngFor=\"let device of prepareMigrationData.softDevices\">\r\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<mat-divider *ngIf=\"prepareMigrationData.notSupportedDevices.length\"></mat-divider>\r\n<div *ngIf=\"prepareMigrationData.notSupportedDevices.length\" class=\"ineligible-devices-section\">\r\n <div class=\"section-title\">Ineligible devices ({{ prepareMigrationData.notSupportedDevices.length }})</div>\r\n <div class=\"section-content\">\r\n <div class=\"device-group\">\r\n <ng-container *ngFor=\"let device of prepareMigrationData.notSupportedDevices\">\r\n <app-device-move-user-wizard [device]=\"device\"></app-device-move-user-wizard>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n", styles: [".eligible-devices-section,.ineligible-devices-section{display:flex;padding:1.5rem}.eligible-devices-section .section-title,.ineligible-devices-section .section-title{font-size:18px;font-weight:700;padding:0 .5rem;width:300px}.eligible-devices-section .section-content,.ineligible-devices-section .section-content{width:100%}.group-title{font-size:18px;font-weight:700;margin-bottom:1rem}\n"] }]
|
|
1248
|
+
}], ctorParameters: function () { return [{ type: MoveUserService }]; } });
|
|
1249
|
+
|
|
1250
|
+
// for test only
|
|
1251
|
+
const LOCATION = 'Y2lzY29zcGFyazovL3VzL0xPQ0FUSU9OLzE2YjY0NjljLTBjZmQtNDJjMS1iOWJjLTUyN2FlZTNhN2RlOQ';
|
|
1252
|
+
class MoveUserStepperComponent {
|
|
1253
|
+
get moveUserPending() {
|
|
1254
|
+
return this.userService.moveUserPending;
|
|
1255
|
+
}
|
|
1256
|
+
get currentNumber() {
|
|
1257
|
+
var _a, _b, _c;
|
|
1258
|
+
if (((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.devices) === null || _b === void 0 ? void 0 : _b.length) && ((_c = this.user.devices[0]) === null || _c === void 0 ? void 0 : _c.lineAssociations) && this.user.devices[0].lineAssociations[0]) {
|
|
1259
|
+
return this.user.devices[0].lineAssociations[0].directoryNumber.directoryNumber;
|
|
1260
|
+
}
|
|
1261
|
+
return '';
|
|
1262
|
+
}
|
|
1263
|
+
get locations() {
|
|
1264
|
+
return this.siteSettingsService.locations;
|
|
1265
|
+
}
|
|
1266
|
+
get prepareMigrationData() {
|
|
1267
|
+
return this.moveUserService.prepareMigrationData;
|
|
1268
|
+
}
|
|
1269
|
+
constructor(dnsService, userService, siteSettingsService, notificationService, moveUserService) {
|
|
1270
|
+
this.dnsService = dnsService;
|
|
1271
|
+
this.userService = userService;
|
|
1272
|
+
this.siteSettingsService = siteSettingsService;
|
|
1273
|
+
this.notificationService = notificationService;
|
|
1274
|
+
this.moveUserService = moveUserService;
|
|
1275
|
+
this.done = new EventEmitter();
|
|
1276
|
+
this.runMoveUser = new EventEmitter();
|
|
1277
|
+
this.cancel = new EventEmitter();
|
|
1278
|
+
this.isLinear = false;
|
|
1279
|
+
this.phoneNumberPending = false;
|
|
1280
|
+
this.filteredLocations = [];
|
|
1281
|
+
this.dataPending = false;
|
|
1282
|
+
}
|
|
1283
|
+
ngOnInit() {
|
|
1284
|
+
this.moveUserService.prepareMigrationData = new PrepareMigrationData();
|
|
1285
|
+
this.getData();
|
|
1286
|
+
}
|
|
1287
|
+
displayLocation(location) {
|
|
1288
|
+
return (location === null || location === void 0 ? void 0 : location.name) || '';
|
|
1289
|
+
}
|
|
1290
|
+
onLocationAutocomplete(event) {
|
|
1291
|
+
var _a;
|
|
1292
|
+
const value = event.target.value;
|
|
1293
|
+
if ((_a = this.locations) === null || _a === void 0 ? void 0 : _a.length) {
|
|
1294
|
+
this.filteredLocations = filterOptions(this.locations, value || '', '', 'name');
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
onNumberAutocomplete() {
|
|
1298
|
+
var _a;
|
|
1299
|
+
if ((_a = this.dnsService.phoneNumbers) === null || _a === void 0 ? void 0 : _a.length) {
|
|
1300
|
+
this.filteredPhoneNumbers = filterOptions(this.dnsService.phoneNumbers, this.prepareMigrationData.newPhoneNumber);
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1303
|
+
onMoveUser(stepper) {
|
|
1304
|
+
this.stepper = stepper;
|
|
1305
|
+
this.runMoveUser.emit();
|
|
1306
|
+
}
|
|
1307
|
+
onStepChange(event) {
|
|
1308
|
+
}
|
|
1309
|
+
selectPhoneNumberMigrationType(event) {
|
|
1310
|
+
if (event.value && event.value === '2') {
|
|
1311
|
+
this.getPhoneNumbers();
|
|
1312
|
+
}
|
|
1313
|
+
this.moveUserService.prepareMigrationData.removePhoneNumber = event.value && event.value === '3';
|
|
1314
|
+
}
|
|
1315
|
+
selectExtensionMigrationType(event) {
|
|
1316
|
+
this.moveUserService.prepareMigrationData.removeExtension = event.value && event.value === '3';
|
|
1317
|
+
}
|
|
1318
|
+
onPhoneNumberChange(event) {
|
|
1319
|
+
console.log('new phone number = ', this.prepareMigrationData.newPhoneNumber);
|
|
1320
|
+
}
|
|
1321
|
+
onLocationChange(event) {
|
|
1322
|
+
this.moveUserService.prepareMigrationData.newLocation = event.option.value;
|
|
1323
|
+
this.moveUserService.resetMigrationDataForNewLocation();
|
|
1324
|
+
if (this.prepareMigrationData.moveType.phoneNumber === '2') {
|
|
1325
|
+
this.getPhoneNumbers();
|
|
1326
|
+
}
|
|
1327
|
+
this.getPrepareUserData();
|
|
1328
|
+
}
|
|
1329
|
+
onExtensionChange(event) {
|
|
1330
|
+
console.log('new newExtension = ', this.prepareMigrationData.newExtension);
|
|
1331
|
+
}
|
|
1332
|
+
getPhoneNumbers() {
|
|
1333
|
+
var _a;
|
|
1334
|
+
if (!((_a = this.prepareMigrationData.newLocation) === null || _a === void 0 ? void 0 : _a.id)) {
|
|
1335
|
+
return;
|
|
1336
|
+
}
|
|
1337
|
+
this.phoneNumberPending = true;
|
|
1338
|
+
this.dnsService.fetchPhoneNumbers(this.customerId, this.prepareMigrationData.newLocation.id)
|
|
1339
|
+
.subscribe(() => {
|
|
1340
|
+
this.phoneNumberPending = false;
|
|
1341
|
+
this.filteredPhoneNumbers = this.dnsService.phoneNumbers.slice();
|
|
1342
|
+
}, () => this.phoneNumberPending = false);
|
|
1343
|
+
}
|
|
1344
|
+
isNextFromSelectLocationDisabled() {
|
|
1345
|
+
var _a, _b;
|
|
1346
|
+
if (!((_b = (_a = this.prepareMigrationData) === null || _a === void 0 ? void 0 : _a.newLocation) === null || _b === void 0 ? void 0 : _b.id) || !this.prepareMigrationData.entityId) {
|
|
1347
|
+
return true;
|
|
1348
|
+
}
|
|
1349
|
+
if (this.prepareMigrationData.moveType.phoneNumber === '2' && !this.prepareMigrationData.newPhoneNumber) {
|
|
1350
|
+
return true;
|
|
1351
|
+
}
|
|
1352
|
+
if (this.prepareMigrationData.moveType.extension === '2' && !this.prepareMigrationData.newExtension) {
|
|
1353
|
+
return true;
|
|
1354
|
+
}
|
|
1355
|
+
return false;
|
|
1356
|
+
}
|
|
1357
|
+
goNextStep(stepper) {
|
|
1358
|
+
}
|
|
1359
|
+
startMigration() {
|
|
1360
|
+
const migrationData = new MigrationData(this.prepareMigrationData);
|
|
1361
|
+
this.dataPending = true;
|
|
1362
|
+
this.moveUserService.startMigration(migrationData)
|
|
1363
|
+
.subscribe((result) => {
|
|
1364
|
+
var _a, _b;
|
|
1365
|
+
this.dataPending = false;
|
|
1366
|
+
if ((_b = (_a = this.nextAfterMoveBtn) === null || _a === void 0 ? void 0 : _a._elementRef) === null || _b === void 0 ? void 0 : _b.nativeElement) {
|
|
1367
|
+
this.nextAfterMoveBtn._elementRef.nativeElement.click();
|
|
1368
|
+
}
|
|
1369
|
+
}, () => {
|
|
1370
|
+
this.dataPending = false;
|
|
1371
|
+
});
|
|
1372
|
+
}
|
|
1373
|
+
getData() {
|
|
1374
|
+
if (!this.user) {
|
|
1375
|
+
return;
|
|
1376
|
+
}
|
|
1377
|
+
this.dataPending = true;
|
|
1378
|
+
this.siteSettingsService.getLocations(this.customerId)
|
|
1379
|
+
.subscribe(() => {
|
|
1380
|
+
var _a;
|
|
1381
|
+
if ((_a = this.locations) === null || _a === void 0 ? void 0 : _a.length) {
|
|
1382
|
+
this.filteredLocations = this.locations.slice();
|
|
1383
|
+
}
|
|
1384
|
+
this.dataPending = false;
|
|
1385
|
+
}, () => this.dataPending = false);
|
|
1386
|
+
}
|
|
1387
|
+
getPrepareUserData() {
|
|
1388
|
+
var _a, _b;
|
|
1389
|
+
if ((_b = (_a = this.prepareMigrationData) === null || _a === void 0 ? void 0 : _a.newLocation) === null || _b === void 0 ? void 0 : _b.id) {
|
|
1390
|
+
this.moveUserService.setOriginPrepareMigrationData();
|
|
1391
|
+
const prepareMigrationBody = new PrepareMigrationBody(this.user, this.customerId, this.prepareMigrationData.newLocation.id);
|
|
1392
|
+
this.moveUserService.prepareMigrationData.pending = true;
|
|
1393
|
+
this.moveUserService.fetchPrepareMigrationData(prepareMigrationBody)
|
|
1394
|
+
.subscribe(() => {
|
|
1395
|
+
}, () => {
|
|
1396
|
+
this.moveUserService.prepareMigrationData.pending = false;
|
|
1397
|
+
this.notificationService.error('Move user attempt is failed');
|
|
1398
|
+
});
|
|
1399
|
+
}
|
|
1400
|
+
}
|
|
1401
|
+
resetMoveTypePhoneNUmber() {
|
|
1402
|
+
this.dnsService.phoneNumbers = [];
|
|
1403
|
+
}
|
|
1404
|
+
}
|
|
1405
|
+
MoveUserStepperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, deps: [{ token: DnsService }, { token: UserService }, { token: SiteSettingsService }, { token: NotificationService }, { token: MoveUserService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1406
|
+
MoveUserStepperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: { user: "user", customerId: "customerId" }, outputs: { done: "done", runMoveUser: "runMoveUser", cancel: "cancel" }, viewQueries: [{ propertyName: "nextAfterMoveBtn", first: true, predicate: ["nextAfterMoveBtn"], descendants: true }], ngImport: i0, template: "<app-loader *ngIf=\"prepareMigrationData.pending || moveUserPending || dataPending\"></app-loader>\r\n<div id=\"move-user-stepper\">\r\n <mat-stepper *ngIf=\"prepareMigrationData?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <form>\r\n <div class=\"move-user-tab-content-box\">\r\n <mat-label class=\"mat-label\">Select a new location</mat-label>\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select location\" [matAutocomplete]=\"auto\" matInput\r\n (input)=\"onLocationAutocomplete($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayLocation\"\r\n (optionSelected)=\"onLocationChange($event)\">\r\n <mat-option *ngFor=\"let location of filteredLocations\" [value]=\"location\">\r\n {{ location.name }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!dataPending && !locations.length\" class=\"mat-error\">\r\n Locations are not available\r\n </div>\r\n\r\n <ng-container *ngIf=\"prepareMigrationData?.newLocation?.id\">\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypePhoneNumber\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.phoneNumber\" name=\"phoneNumber\"\r\n (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current number\r\n {{ prepareMigrationData.primaryPhoneNumber || currentNumber }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\"\r\n [disabled]=\"!prepareMigrationData.newLocation?.id\">\r\n Select a new number\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\" class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select number\" [(ngModel)]=\"prepareMigrationData.newPhoneNumber\"\r\n [matAutocomplete]=\"autoPh\" matInput name=\"newPhoneNumber\"\r\n (input)=\"onNumberAutocomplete()\"/>\r\n <mat-autocomplete #autoPh=\"matAutocomplete\" (optionSelected)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let number of filteredPhoneNumbers\" [value]=\"number\">\r\n {{ number }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!phoneNumberPending && !dnsService.phoneNumbers?.length\" class=\"mat-error\">\r\n Phone numbers are not available for this location\r\n </div>\r\n </div>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removeExtension\">\r\n Remove number\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypeExtension\"\r\n (change)=\"selectExtensionMigrationType($event)\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.extension\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current extension {{ prepareMigrationData.primaryExtension }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\">\r\n Select a new extension\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.extension === '2'\" class=\"input-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n name=\"newExtension\"\r\n (change)=\"onExtensionChange($event)\"\r\n [(ngModel)]=\"prepareMigrationData.newExtension\"\r\n [placeholder]=\"'Enter extension'\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removePhoneNumber\">Remove extension\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n </div>\r\n </form>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext\r\n [disabled]=\"isNextFromSelectLocationDisabled()\" (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <div class=\"move-user-tab-content-box\">\r\n <app-devices-move-user-tab></app-devices-move-user-tab>\r\n </div>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Validation</mat-label>\r\n <div *ngIf=\"!prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationSuccess\">\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationFailed\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext\r\n (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\"\r\n [disabled]=\"prepareMigrationData.errors?.length > 0 || !prepareMigrationData.isConfirm\"\r\n (click)=\"startMigration()\">\r\n Move\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location {{prepareMigrationData?.newLocation?.name}}\r\n <br/>\r\n For the progress of move, please visit the\r\n <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </div>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">\r\n Done\r\n </button>\r\n </div>\r\n </mat-step>\r\n </mat-stepper>\r\n</div>\r\n\r\n<ng-template #validationSuccess>\r\n <p class=\"validation-text\">\r\n Validation has completed successfully. The user can be moved to the\r\n new location. Please be aware of the potential impact of the changes\r\n below.\r\n </p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Cisco 6941 device (SEP987987987987) will not be migrated</li>\r\n <li>\r\n The user will be removed from the Call Pickup Group:\r\n 1675090334-Paris_pickup\r\n </li>\r\n <li>\r\n If Webex App is currently in use, the user will to sign in again to\r\n update the service.\r\n </li>\r\n </ul>\r\n <form>\r\n <mat-checkbox class=\"checkbox\" name=\"isConfirm\" [(ngModel)]=\"prepareMigrationData.isConfirm\"\r\n color=\"primary\">\r\n I confirm that I understand these conditions. I acknowledge the\r\n changes.\r\n </mat-checkbox>\r\n </form>\r\n\r\n</ng-template>\r\n\r\n<ng-template #validationFailed>\r\n <p class=\"validation-text\">\r\n Validation is failed. User migration is not available\r\n </p>\r\n <ul>\r\n <li *ngFor=\"let error of prepareMigrationData.errors\">{{ error }}</li>\r\n </ul>\r\n</ng-template>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}::ng-deep .mat-form-field-infix{padding:0!important;width:100%}::ng-deep .mat-form-field-appearance-outline .mat-input-element{height:35px;width:100%;line-height:35px;margin:5px 0 0}::ng-deep .mat-form-field{width:350px}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}.devices-move-user-box{background-color:#fff;padding:2.5rem;padding:1rem 2.5rem;min-height:350px;border-radius:.5rem}.user-select-location-box{background-color:#fff;padding:2.5rem;height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative;width:100%;max-width:300px}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}.mat-error{margin:0 0 15px}mat-label{display:block}.btn-next{min-width:80px}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}.move-user-tab-content-box{background-color:#fff;min-height:350px;border-radius:.5rem;box-sizing:border-box;padding:25px}.input-container{display:flex;flex-direction:column;gap:1rem}.input-container input{height:-moz-fit-content!important;height:fit-content!important}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i8.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: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i12.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.MatStep, selector: "mat-step", inputs: ["color"], exportAs: ["matStep"] }, { kind: "directive", type: i14.MatStepLabel, selector: "[matStepLabel]" }, { kind: "component", type: i14.MatStepper, selector: "mat-stepper, mat-vertical-stepper, mat-horizontal-stepper, [matStepper]", inputs: ["selectedIndex", "disableRipple", "color", "labelPosition", "headerPosition", "animationDuration"], outputs: ["animationDone"], exportAs: ["matStepper", "matVerticalStepper", "matHorizontalStepper"] }, { kind: "directive", type: i14.MatStepperNext, selector: "button[matStepperNext]", inputs: ["type"] }, { kind: "directive", type: i14.MatStepperPrevious, selector: "button[matStepperPrevious]", inputs: ["type"] }, { kind: "component", type: i7$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i16.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i16.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: DevicesMoveUserWizardTabComponent, selector: "app-devices-move-user-tab" }], encapsulation: i0.ViewEncapsulation.None });
|
|
1407
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserStepperComponent, decorators: [{
|
|
1408
|
+
type: Component,
|
|
1409
|
+
args: [{ selector: 'app-move-user-stepper', encapsulation: ViewEncapsulation.None, template: "<app-loader *ngIf=\"prepareMigrationData.pending || moveUserPending || dataPending\"></app-loader>\r\n<div id=\"move-user-stepper\">\r\n <mat-stepper *ngIf=\"prepareMigrationData?.moveType\" [linear]=\"isLinear\" labelPosition=\"bottom\" #stepper>\r\n <mat-step>\r\n <div class=\"step-title\">Step 1: Select location</div>\r\n <!-- <form>-->\r\n <ng-template matStepLabel>Select location</ng-template>\r\n <form>\r\n <div class=\"move-user-tab-content-box\">\r\n <mat-label class=\"mat-label\">Select a new location</mat-label>\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select location\" [matAutocomplete]=\"auto\" matInput\r\n (input)=\"onLocationAutocomplete($event)\"/>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"displayLocation\"\r\n (optionSelected)=\"onLocationChange($event)\">\r\n <mat-option *ngFor=\"let location of filteredLocations\" [value]=\"location\">\r\n {{ location.name }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!dataPending && !locations.length\" class=\"mat-error\">\r\n Locations are not available\r\n </div>\r\n\r\n <ng-container *ngIf=\"prepareMigrationData?.newLocation?.id\">\r\n <mat-label class=\"mat-label\">Phone number</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypePhoneNumber\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.phoneNumber\" name=\"phoneNumber\"\r\n (change)=\"selectPhoneNumberMigrationType($event)\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current number\r\n {{ prepareMigrationData.primaryPhoneNumber || currentNumber }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\"\r\n [disabled]=\"!prepareMigrationData.newLocation?.id\">\r\n Select a new number\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.phoneNumber === '2'\" class=\"select-container\">\r\n <mat-progress-spinner *ngIf=\"phoneNumberPending\" class=\"field-spinner\" mode=\"indeterminate\"\r\n [diameter]=\"30\"></mat-progress-spinner>\r\n\r\n <mat-form-field class=\"app-autocomplete-input\" appearance=\"outline\">\r\n <input placeholder=\"Select number\" [(ngModel)]=\"prepareMigrationData.newPhoneNumber\"\r\n [matAutocomplete]=\"autoPh\" matInput name=\"newPhoneNumber\"\r\n (input)=\"onNumberAutocomplete()\"/>\r\n <mat-autocomplete #autoPh=\"matAutocomplete\" (optionSelected)=\"onPhoneNumberChange($event)\">\r\n <mat-option *ngFor=\"let number of filteredPhoneNumbers\" [value]=\"number\">\r\n {{ number }}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div *ngIf=\"!phoneNumberPending && !dnsService.phoneNumbers?.length\" class=\"mat-error\">\r\n Phone numbers are not available for this location\r\n </div>\r\n </div>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removeExtension\">\r\n Remove number\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <mat-label class=\"mat-label\">Extension</mat-label>\r\n <mat-radio-group class=\"radio-group\" name=\"moveTypeExtension\"\r\n (change)=\"selectExtensionMigrationType($event)\"\r\n [(ngModel)]=\"prepareMigrationData.moveType.extension\">\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"1\"\r\n color=\"primary\">\r\n Keep current extension {{ prepareMigrationData.primaryExtension }}\r\n </mat-radio-button>\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"2\"\r\n color=\"primary\">\r\n Select a new extension\r\n </mat-radio-button>\r\n\r\n <div *ngIf=\"prepareMigrationData.moveType.extension === '2'\" class=\"input-container\">\r\n <mat-form-field appearance=\"outline\">\r\n <input\r\n matInput\r\n type=\"text\"\r\n name=\"newExtension\"\r\n (change)=\"onExtensionChange($event)\"\r\n [(ngModel)]=\"prepareMigrationData.newExtension\"\r\n [placeholder]=\"'Enter extension'\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <mat-radio-button\r\n class=\"radio-button\"\r\n value=\"3\"\r\n color=\"primary\"\r\n [disabled]=\"prepareMigrationData.removePhoneNumber\">Remove extension\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </ng-container>\r\n </div>\r\n </form>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext\r\n [disabled]=\"isNextFromSelectLocationDisabled()\" (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" (click)=\"cancel.emit()\">Cancel</button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 2: Device eligibility check</div>\r\n <ng-template matStepLabel>Device eligibility check</ng-template>\r\n <div class=\"move-user-tab-content-box\">\r\n <app-devices-move-user-tab></app-devices-move-user-tab>\r\n </div>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\" matStepperNext (click)=\"goNextStep(stepper)\">\r\n Next\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step [aria-labelledby]=\"'disabled_af'\">\r\n <div class=\"step-title\">Step 3: Validation</div>\r\n <ng-template matStepLabel>Validation</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Validation</mat-label>\r\n <div *ngIf=\"!prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationSuccess\">\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"prepareMigrationData.errors?.length\">\r\n <ng-container *ngTemplateOutlet=\"validationFailed\">\r\n </ng-container>\r\n </div>\r\n </div>\r\n <button #nextAfterMoveBtn mat-button class=\"invisible-next-btn\" matStepperNext\r\n (click)=\"goNextStep(stepper)\"></button>\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-next\"\r\n [disabled]=\"prepareMigrationData.errors?.length > 0 || !prepareMigrationData.isConfirm\"\r\n (click)=\"startMigration()\">\r\n Move\r\n </button>\r\n <button mat-button class=\"webex-btn btn-cancel\" matStepperPrevious>\r\n Previous\r\n </button>\r\n </div>\r\n </mat-step>\r\n <mat-step>\r\n <div class=\"step-title\">Step 4: Result</div>\r\n <ng-template matStepLabel>Result</ng-template>\r\n\r\n <div class=\"devices-move-user-box\">\r\n <mat-label class=\"mat-label\">Moving user has been successfully initiated!</mat-label>\r\n <p class=\"validation-text\">\r\n The user will be moved to the new location {{prepareMigrationData?.newLocation?.name}}\r\n <br/>\r\n For the progress of move, please visit the\r\n <a class=\"form-link\" href=\"#\">user details</a>.\r\n </p>\r\n </div>\r\n\r\n <div class=\"step-actions\">\r\n <button mat-button class=\"webex-btn btn-done\" (click)=\"done.emit(true)\">\r\n Done\r\n </button>\r\n </div>\r\n </mat-step>\r\n </mat-stepper>\r\n</div>\r\n\r\n<ng-template #validationSuccess>\r\n <p class=\"validation-text\">\r\n Validation has completed successfully. The user can be moved to the\r\n new location. Please be aware of the potential impact of the changes\r\n below.\r\n </p>\r\n <mat-label class=\"mat-label\">Expected changes</mat-label>\r\n <ul>\r\n <li>Cisco 6941 device (SEP987987987987) will not be migrated</li>\r\n <li>\r\n The user will be removed from the Call Pickup Group:\r\n 1675090334-Paris_pickup\r\n </li>\r\n <li>\r\n If Webex App is currently in use, the user will to sign in again to\r\n update the service.\r\n </li>\r\n </ul>\r\n <form>\r\n <mat-checkbox class=\"checkbox\" name=\"isConfirm\" [(ngModel)]=\"prepareMigrationData.isConfirm\"\r\n color=\"primary\">\r\n I confirm that I understand these conditions. I acknowledge the\r\n changes.\r\n </mat-checkbox>\r\n </form>\r\n\r\n</ng-template>\r\n\r\n<ng-template #validationFailed>\r\n <p class=\"validation-text\">\r\n Validation is failed. User migration is not available\r\n </p>\r\n <ul>\r\n <li *ngFor=\"let error of prepareMigrationData.errors\">{{ error }}</li>\r\n </ul>\r\n</ng-template>\r\n", styles: [".mat-stepper-horizontal{height:-moz-fit-content;height:fit-content;max-height:750px;margin:0 auto;width:70%;background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container{margin:0 auto;width:800px}.mat-stepper-horizontal .mat-step-icon{width:28px;height:28px;border:3px solid hsl(0,0%,50.2%)}.mat-stepper-horizontal .mat-step-icon-selected{background-color:#c6c6c6!important;border-color:#19487d}.mat-stepper-horizontal .mat-step-icon-state-number{background-color:#fff}.mat-stepper-horizontal .mat-step-icon-state-edit,.mat-stepper-horizontal .mat-step-header .mat-step-icon-state-done{background-color:#1170cf;border-color:#1170cf}.mat-stepper-horizontal .mat-step-icon-content{display:none}.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):before,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):before,.mat-stepper-horizontal .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child):after,.mat-stepper-horizontal [dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child):after{border-top-width:3px!important}.mat-stepper-horizontal .mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header:after,.mat-stepper-horizontal .mat-stepper-horizontal-line{border-top-color:#1170cf!important;border-top-width:3px!important;border-top-style:solid!important}.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-stepper-horizontal-line,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:before,.mat-stepper-horizontal .mat-horizontal-stepper-header[aria-selected=true]~.mat-horizontal-stepper-header:after{border-top-width:3px!important;background-color:#7b7b7b!important;border-top-color:#7b7b7b!important}::ng-deep .mat-form-field-infix{padding:0!important;width:100%}::ng-deep .mat-form-field-appearance-outline .mat-input-element{height:35px;width:100%;line-height:35px;margin:5px 0 0}::ng-deep .mat-form-field{width:350px}::ng-deep .mat-step-header[aria-labelledby=disabled_af]{pointer-events:none!important;cursor:not-allowed}::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-icon,::ng-deep .mat-step-header[aria-labelledby=disabled_af] .mat-step-label{cursor:not-allowed;opacity:.6}.mat-mdc-form-field{margin-top:16px}.mat-label{font-size:16px;font-weight:600;margin:1rem 0}.step-title{font-size:28px;font-weight:700;margin:.5rem 0 1.5rem 2rem}.validation-text{margin-top:.5rem;margin-bottom:2rem}ul{padding:.5rem 2rem;margin-top:.5rem;margin-bottom:2rem}.devices-move-user-box{background-color:#fff;padding:2.5rem;padding:1rem 2.5rem;min-height:350px;border-radius:.5rem}.user-select-location-box{background-color:#fff;padding:2.5rem;height:350px;border-radius:.5rem}.form-link{text-decoration:none;color:#007bff}.radio-group{display:flex;flex-direction:column;margin:15px 0;align-items:flex-start}.radio-button{margin:.5rem 0}.select{width:350px;padding:.5rem;margin:.5rem 0;border:1px solid #a0a0a0;border-radius:.5rem}.step-actions{display:flex;flex-flow:row-reverse;margin-top:2rem;gap:1rem}.webex-btn{border:1px solid black;border-radius:1rem;cursor:pointer;gap:1rem}.btn-next{background-color:#000;color:#fff}.btn-cancel,.btn-done{background-color:#fff;color:#000}.select-container{position:relative;width:100%;max-width:300px}.select-container .mat-progress-spinner{position:absolute;left:45%;top:35px}.invisible-next-btn{height:1px;width:1px}.mat-error{margin:0 0 15px}mat-label{display:block}.btn-next{min-width:80px}.mat-button-disabled{background-color:#bbb;color:#fff;border:1px solid grey;cursor:default!important}.move-user-tab-content-box{background-color:#fff;min-height:350px;border-radius:.5rem;box-sizing:border-box;padding:25px}.input-container{display:flex;flex-direction:column;gap:1rem}.input-container input{height:-moz-fit-content!important;height:fit-content!important}\n"] }]
|
|
1410
|
+
}], ctorParameters: function () { return [{ type: DnsService }, { type: UserService }, { type: SiteSettingsService }, { type: NotificationService }, { type: MoveUserService }]; }, propDecorators: { nextAfterMoveBtn: [{
|
|
1411
|
+
type: ViewChild,
|
|
1412
|
+
args: ['nextAfterMoveBtn']
|
|
1413
|
+
}], done: [{
|
|
1414
|
+
type: Output
|
|
1415
|
+
}], user: [{
|
|
1416
|
+
type: Input
|
|
1417
|
+
}], customerId: [{
|
|
1418
|
+
type: Input
|
|
1419
|
+
}], runMoveUser: [{
|
|
1420
|
+
type: Output
|
|
1421
|
+
}], cancel: [{
|
|
1422
|
+
type: Output
|
|
1423
|
+
}] } });
|
|
1424
|
+
|
|
1425
|
+
class MoveUserWizardComponent {
|
|
1426
|
+
constructor(dnsService) {
|
|
1427
|
+
this.dnsService = dnsService;
|
|
1428
|
+
this.closeMoveUserWizard = new EventEmitter();
|
|
1429
|
+
this.done = new EventEmitter();
|
|
1430
|
+
this.runMoveUser = new EventEmitter();
|
|
1431
|
+
this.dataPending = false;
|
|
1432
|
+
}
|
|
1433
|
+
onClose() {
|
|
1434
|
+
this.closeMoveUserWizard.emit();
|
|
1435
|
+
}
|
|
1436
|
+
onRunMoveUser() {
|
|
1437
|
+
this.runMoveUser.emit();
|
|
1438
|
+
}
|
|
1439
|
+
}
|
|
1440
|
+
MoveUserWizardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, deps: [{ token: DnsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1441
|
+
MoveUserWizardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: { user: "user", customerId: "customerId" }, outputs: { closeMoveUserWizard: "closeMoveUserWizard", done: "done", runMoveUser: "runMoveUser" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: MoveUserStepperComponent, selector: "app-move-user-stepper", inputs: ["user", "customerId"], outputs: ["done", "runMoveUser", "cancel"] }] });
|
|
1442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MoveUserWizardComponent, decorators: [{
|
|
1443
|
+
type: Component,
|
|
1444
|
+
args: [{ selector: 'app-move-user-wizard', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div class=\"move-user-stepper-container\">\r\n <header class=\"move-user-header\">\r\n <div class=\"move-user-header__title\">Move User {{user.userid}}</div>\r\n <div class=\"move-user-header__close\">\r\n <span class=\"app-icon icon-white-close\" (click)=\"onClose()\"></span>\r\n </div>\r\n </header>\r\n <app-move-user-stepper *ngIf=\"user\" [customerId]=\"customerId\"\r\n [user]=\"user\" (cancel)=\"onClose()\" (done)=\"done.emit()\"\r\n (runMoveUser)=\"onRunMoveUser()\"></app-move-user-stepper>\r\n</div>\r\n", styles: [".move-user-header{background-color:#1170cf;height:45px;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;color:#fff;font-size:18px;font-weight:500}.move-user-header__close{cursor:pointer}.move-user-header__close i{font-size:25px;font-weight:100}.app-icon{height:20px;width:20px;display:inline-block;cursor:pointer;background-repeat:no-repeat;background-position:center}.icon-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.0005 13.0538L6.92737 18.1269C6.78892 18.2654 6.61489 18.3362 6.40527 18.3394C6.19567 18.3426 6.01844 18.2718 5.87357 18.1269C5.72869 17.982 5.65625 17.8064 5.65625 17.6C5.65625 17.3936 5.72869 17.218 5.87357 17.0731L10.9466 12L5.87357 6.92689C5.73511 6.78844 5.66427 6.6144 5.66107 6.40479C5.65786 6.19519 5.72869 6.01795 5.87357 5.87309C6.01844 5.7282 6.19407 5.65576 6.40047 5.65576C6.60687 5.65576 6.78251 5.7282 6.92737 5.87309L12.0005 10.9462L17.0736 5.87309C17.212 5.73462 17.3861 5.66379 17.5957 5.66059C17.8053 5.65737 17.9825 5.7282 18.1274 5.87309C18.2723 6.01795 18.3447 6.19359 18.3447 6.39999C18.3447 6.60639 18.2723 6.78202 18.1274 6.92689L13.0543 12L18.1274 17.0731C18.2658 17.2115 18.3367 17.3856 18.3399 17.5952C18.3431 17.8048 18.2723 17.982 18.1274 18.1269C17.9825 18.2718 17.8069 18.3442 17.6005 18.3442C17.3941 18.3442 17.2184 18.2718 17.0736 18.1269L12.0005 13.0538Z%22 fill%3D%22%23333333%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}.icon-white-close{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M13.0606 11.9998L19.2803 5.78001C19.35 5.71038 19.4052 5.6277 19.4429 5.53672C19.4806 5.44573 19.5 5.34822 19.5 5.24974C19.5 5.15126 19.4806 5.05374 19.4429 4.96276C19.4052 4.87177 19.3499 4.7891 19.2803 4.71947C19.2107 4.64983 19.128 4.5946 19.037 4.55691C18.946 4.51923 18.8485 4.49983 18.75 4.49983C18.6515 4.49984 18.554 4.51924 18.463 4.55692C18.3721 4.59461 18.2894 4.64985 18.2198 4.71949L12 10.9392L5.78026 4.71949C5.71077 4.64921 5.62807 4.59335 5.53691 4.55514C5.44576 4.51692 5.34795 4.49711 5.24911 4.49683C5.15027 4.49655 5.05235 4.51581 4.96098 4.55351C4.86961 4.59121 4.78659 4.64659 4.7167 4.71648C4.64681 4.78638 4.59143 4.8694 4.55374 4.96077C4.51605 5.05214 4.49679 5.15006 4.49707 5.2489C4.49736 5.34774 4.51718 5.44555 4.5554 5.5367C4.59361 5.62786 4.64947 5.71055 4.71976 5.78004L10.9395 11.9998L4.71976 18.2195C4.65013 18.2892 4.59489 18.3718 4.5572 18.4628C4.51951 18.5538 4.50011 18.6513 4.50011 18.7498C4.50011 18.8483 4.51951 18.9458 4.5572 19.0368C4.59488 19.1278 4.65012 19.2105 4.71976 19.2801C4.7894 19.3497 4.87207 19.405 4.96305 19.4427C5.05403 19.4803 5.15155 19.4997 5.25003 19.4997C5.34851 19.4997 5.44603 19.4803 5.53701 19.4427C5.628 19.405 5.71067 19.3497 5.78031 19.2801L12.0001 13.0603L18.2198 19.2801C18.3604 19.4207 18.5512 19.4997 18.7501 19.4997C18.949 19.4997 19.1397 19.4207 19.2804 19.2801C19.421 19.1395 19.5 18.9487 19.5 18.7498C19.5 18.5509 19.421 18.3602 19.2804 18.2195L13.0606 11.9998Z%22 fill%3D%22white%22 fill-opacity%3D%220.95%22%2F%3E%0D%3C%2Fsvg%3E%0D\")}\n"] }]
|
|
1445
|
+
}], ctorParameters: function () { return [{ type: DnsService }]; }, propDecorators: { user: [{
|
|
1446
|
+
type: Input
|
|
1447
|
+
}], customerId: [{
|
|
1448
|
+
type: Input
|
|
1449
|
+
}], closeMoveUserWizard: [{
|
|
1450
|
+
type: Output
|
|
1451
|
+
}], done: [{
|
|
1452
|
+
type: Output
|
|
1453
|
+
}], runMoveUser: [{
|
|
1454
|
+
type: Output
|
|
1455
|
+
}] } });
|
|
1456
|
+
|
|
1457
|
+
const DISPLAYED_COLS = ['user-icon', 'name', 'email', 'status', 'role', 'actions'];
|
|
1458
|
+
const LOCAL_STORAGE = {
|
|
1459
|
+
USER_IN_MIGRATION: 'userIdInMigration'
|
|
1460
|
+
};
|
|
1461
|
+
class UsersListComponent {
|
|
1462
|
+
get form() {
|
|
1463
|
+
var _a, _b;
|
|
1464
|
+
return (_b = (_a = this.userService) === null || _a === void 0 ? void 0 : _a.user) === null || _b === void 0 ? void 0 : _b.form;
|
|
1465
|
+
}
|
|
1466
|
+
constructor(userService, apiService, apiWebexService, notifications, usersSearchService, dialog) {
|
|
1467
|
+
this.userService = userService;
|
|
1468
|
+
this.apiService = apiService;
|
|
1469
|
+
this.apiWebexService = apiWebexService;
|
|
1470
|
+
this.notifications = notifications;
|
|
1471
|
+
this.usersSearchService = usersSearchService;
|
|
1472
|
+
this.dialog = dialog;
|
|
1473
|
+
this.openUser = new EventEmitter();
|
|
1474
|
+
this.userMoved = new EventEmitter();
|
|
1475
|
+
this.switchToWizard = new EventEmitter();
|
|
1476
|
+
this.displayedColumns = DISPLAYED_COLS;
|
|
1477
|
+
this.showMoveUserWizard = false;
|
|
1478
|
+
this.moveUserPending = false;
|
|
1479
|
+
this.subscriptions = [];
|
|
1480
|
+
}
|
|
1481
|
+
ngOnInit() {
|
|
1482
|
+
this.usersSearchService.setDefaultValues();
|
|
1483
|
+
this.usersSearchService.customerId = this.customerId;
|
|
1484
|
+
this.usersSearchService.siteId = this.siteId;
|
|
1485
|
+
this.apiService.token = this.token;
|
|
1486
|
+
this.apiWebexService.token = this.token;
|
|
1487
|
+
this.apiService.apiUrl = this.host + '/dcp';
|
|
1488
|
+
this.apiWebexService.apiUrl = this.host + '/webex';
|
|
1489
|
+
this.getMigratedUsers();
|
|
1490
|
+
const subscription = this.usersSearchService.foundUsers$
|
|
1491
|
+
.subscribe((users) => {
|
|
1492
|
+
this.initializeDataSource(users);
|
|
1493
|
+
});
|
|
1494
|
+
this.subscriptions.push(subscription);
|
|
1495
|
+
console.log('users list paris 7773');
|
|
1496
|
+
}
|
|
1497
|
+
ngOnDestroy() {
|
|
1498
|
+
var _a;
|
|
1499
|
+
if ((_a = this.subscriptions) === null || _a === void 0 ? void 0 : _a.length) {
|
|
1500
|
+
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
1501
|
+
}
|
|
1502
|
+
}
|
|
1503
|
+
pageNumberChangeEvent(perPageNumber) {
|
|
1504
|
+
this.usersSearchService.pageSize = perPageNumber;
|
|
1505
|
+
this.usersSearchService.pageIndex = 0;
|
|
1506
|
+
this.runSearch();
|
|
1507
|
+
}
|
|
1508
|
+
closeMoveUserWizard(afterUserMove) {
|
|
1509
|
+
this.moveUser = null;
|
|
1510
|
+
this.moveUserIndex = null;
|
|
1511
|
+
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
1512
|
+
this.showMoveUserWizard = false;
|
|
1513
|
+
this.switchToWizard.emit(false);
|
|
1514
|
+
if (afterUserMove) {
|
|
1515
|
+
this.getMigratedUsers();
|
|
1516
|
+
}
|
|
1517
|
+
}
|
|
1518
|
+
pageEvent(event) {
|
|
1519
|
+
this.usersSearchService.pageSize = event.pageSize;
|
|
1520
|
+
this.usersSearchService.pageIndex = event.pageIndex;
|
|
1521
|
+
this.runSearch();
|
|
1522
|
+
}
|
|
1523
|
+
onUserClick(user) {
|
|
1524
|
+
this.openUser.emit(user);
|
|
1525
|
+
}
|
|
1526
|
+
moveUserToMT(user, index) {
|
|
1527
|
+
if (user && user.siteId && user.userid) {
|
|
1528
|
+
this.moveUserPending = true;
|
|
1529
|
+
this.moveInProgressUserId = user.userid;
|
|
1530
|
+
this.setStatusToUser(index, 'In Progress');
|
|
1531
|
+
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
|
|
1532
|
+
const subscription = this.userService.moveUserToMT(this.customerId, user)
|
|
1533
|
+
.subscribe(() => {
|
|
1534
|
+
this.moveUser = null;
|
|
1535
|
+
this.moveUserIndex = null;
|
|
1536
|
+
this.getMigratedUsers();
|
|
1537
|
+
}, () => {
|
|
1538
|
+
this.removeUserInMigrationProgress();
|
|
1539
|
+
this.setStatusToUser(index, 'Migration Error');
|
|
1540
|
+
});
|
|
1541
|
+
this.subscriptions.push(subscription);
|
|
1542
|
+
}
|
|
1543
|
+
}
|
|
1544
|
+
moveUserToDI(user, index) {
|
|
1545
|
+
if (user && user.siteId && user.webexUUID) {
|
|
1546
|
+
this.moveUserPending = true;
|
|
1547
|
+
this.moveInProgressUserId = user.userid;
|
|
1548
|
+
this.users[index].status = 'In Progress';
|
|
1549
|
+
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, user.userid);
|
|
1550
|
+
const subscription = this.userService.moveUserToDI(this.customerId, user)
|
|
1551
|
+
.subscribe(() => {
|
|
1552
|
+
this.removeUserInMigrationProgress();
|
|
1553
|
+
this.setStatusToUser(index, 'Active');
|
|
1554
|
+
this.users[index].webexUUID = '';
|
|
1555
|
+
if (this.usersSearchService.migratedUsers && this.usersSearchService.migratedUsers.length) {
|
|
1556
|
+
this.usersSearchService.migratedUsers = this.usersSearchService.migratedUsers.filter((migratedUser) => migratedUser.userid !== user.email);
|
|
1557
|
+
}
|
|
1558
|
+
}, () => {
|
|
1559
|
+
this.removeUserInMigrationProgress();
|
|
1560
|
+
this.setStatusToUser(index, 'Migration Error');
|
|
1561
|
+
});
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
removeUserInMigrationProgress() {
|
|
1565
|
+
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
1566
|
+
this.moveInProgressUserId = '';
|
|
1567
|
+
this.moveUserPending = false;
|
|
1568
|
+
}
|
|
1569
|
+
setStatusToUser(index, status) {
|
|
1570
|
+
if (this.users && this.users[index]) {
|
|
1571
|
+
this.users[index].status = status;
|
|
1572
|
+
if (status === 'Migrated') {
|
|
1573
|
+
this.users[index].roleName = '';
|
|
1574
|
+
this.users[index].isMigrated = true;
|
|
1575
|
+
this.users[index].status = status;
|
|
1576
|
+
}
|
|
1577
|
+
else {
|
|
1578
|
+
this.users[index].roleName = 'Dedicated Instance Calling user';
|
|
1579
|
+
this.users[index].isMigrated = false;
|
|
1580
|
+
this.users[index].status = status;
|
|
1581
|
+
}
|
|
1582
|
+
}
|
|
1583
|
+
this.dataSource = new MatTableDataSource(this.users);
|
|
1584
|
+
}
|
|
1585
|
+
initializeDataSource(users) {
|
|
1586
|
+
if (users === null || users === void 0 ? void 0 : users.length) {
|
|
1587
|
+
// this.setRandomUserRole(users);
|
|
1588
|
+
this.users = users;
|
|
1589
|
+
this.setUserMigrationProgress();
|
|
1590
|
+
this.usersSearchService.setMigratedPropToUsers(this.users);
|
|
1591
|
+
this.dataSource = new MatTableDataSource(users);
|
|
1592
|
+
}
|
|
1593
|
+
}
|
|
1594
|
+
setUserRole() {
|
|
1595
|
+
var _a;
|
|
1596
|
+
if ((_a = this.users) === null || _a === void 0 ? void 0 : _a.length) {
|
|
1597
|
+
this.users.forEach(user => {
|
|
1598
|
+
if (!user.isMigrated) {
|
|
1599
|
+
user.roleName = 'Dedicated Instance Calling user';
|
|
1600
|
+
}
|
|
1601
|
+
});
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
setRandomUserRole(users) {
|
|
1605
|
+
const max = Math.round(this.usersSearchService.pageSize - this.usersSearchService.pageSize / 4);
|
|
1606
|
+
const min = Math.round(this.usersSearchService.pageSize / 2);
|
|
1607
|
+
const randomAmount = Math.round(Math.random() * (max - min) + min);
|
|
1608
|
+
const indexes = this.getArrayOfRandomUserIndexes(randomAmount);
|
|
1609
|
+
indexes.forEach(index => {
|
|
1610
|
+
if (users[index]) {
|
|
1611
|
+
users[index].roleName = 'Dedicated Instance Calling user';
|
|
1612
|
+
}
|
|
1613
|
+
});
|
|
1614
|
+
}
|
|
1615
|
+
getArrayOfRandomUserIndexes(randomAmount) {
|
|
1616
|
+
const indexes = [];
|
|
1617
|
+
while (randomAmount > 0) {
|
|
1618
|
+
const index = Math.round(Math.random() * (this.usersSearchService.pageSize - 1));
|
|
1619
|
+
indexes.push(index);
|
|
1620
|
+
randomAmount--;
|
|
1621
|
+
}
|
|
1622
|
+
return indexes;
|
|
1623
|
+
}
|
|
1624
|
+
runSearch() {
|
|
1625
|
+
this.dataPending = true;
|
|
1626
|
+
this.usersSearchService.quickRegularUsersSearch()
|
|
1627
|
+
.subscribe(() => {
|
|
1628
|
+
this.dataPending = false;
|
|
1629
|
+
}, () => {
|
|
1630
|
+
this.dataPending = false;
|
|
1631
|
+
this.notifications.error('The data can not be received');
|
|
1632
|
+
});
|
|
1633
|
+
}
|
|
1634
|
+
setUserMigrationProgress() {
|
|
1635
|
+
const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
1636
|
+
if (userIdInMigration) {
|
|
1637
|
+
const index = this.users.findIndex(user => user.userid === userIdInMigration);
|
|
1638
|
+
this.moveInProgressUserId = index > -1 ? this.users[index].userid : '';
|
|
1639
|
+
this.moveUserPending = index > -1;
|
|
1640
|
+
}
|
|
1641
|
+
}
|
|
1642
|
+
getMigratedUsers() {
|
|
1643
|
+
this.dataPending = true;
|
|
1644
|
+
const searchParams = {
|
|
1645
|
+
customerid: this.customerId,
|
|
1646
|
+
siteid: this.siteId,
|
|
1647
|
+
'cloud-only': 'true'
|
|
1648
|
+
};
|
|
1649
|
+
// this.usersSearchService.quickWebexUsersSearch(searchParams, true, MAX_INTEGER)
|
|
1650
|
+
this.usersSearchService.getMigratedUsers(this.customerId)
|
|
1651
|
+
// this.usersSearchService.getMigratedWebexUsers(this.customerId)
|
|
1652
|
+
.subscribe(() => {
|
|
1653
|
+
const userIdInMigration = localStorage.getItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
1654
|
+
if (userIdInMigration && this.usersSearchService.migratedUsers.filter((migratedUser) => migratedUser.userid === userIdInMigration)) {
|
|
1655
|
+
localStorage.removeItem(LOCAL_STORAGE.USER_IN_MIGRATION);
|
|
1656
|
+
}
|
|
1657
|
+
this.runSearch();
|
|
1658
|
+
}, () => {
|
|
1659
|
+
this.dataPending = false;
|
|
1660
|
+
this.notifications.error('The data can not be received');
|
|
1661
|
+
});
|
|
1662
|
+
}
|
|
1663
|
+
onMoveUser(user, index, type, title) {
|
|
1664
|
+
const dialogRef = this.dialog.open(UserListConfirmDialogComponent, {
|
|
1665
|
+
data: {
|
|
1666
|
+
title: `Move user ${user.userid} to ${title}?`,
|
|
1667
|
+
message: `<p>By moving out of Dedicated Instance, you may need to reassign directory numbers and lose calling services.</p>
|
|
1668
|
+
<p>Are you sure you want to continue?</p>`,
|
|
1669
|
+
confirmButtonText: 'Yes, continue'
|
|
1670
|
+
}
|
|
1671
|
+
});
|
|
1672
|
+
dialogRef.beforeClosed().subscribe((result) => {
|
|
1673
|
+
if (result) {
|
|
1674
|
+
switch (type) {
|
|
1675
|
+
case 'QuickMove':
|
|
1676
|
+
this.moveUserToMT(user, index);
|
|
1677
|
+
break;
|
|
1678
|
+
case 'MT':
|
|
1679
|
+
this.moveUser = user;
|
|
1680
|
+
this.moveUserIndex = index;
|
|
1681
|
+
this.showMoveUserWizard = true;
|
|
1682
|
+
this.switchToWizard.emit(true);
|
|
1683
|
+
break;
|
|
1684
|
+
case 'DI':
|
|
1685
|
+
this.moveUserToDI(user, index);
|
|
1686
|
+
break;
|
|
1687
|
+
}
|
|
1688
|
+
}
|
|
1689
|
+
});
|
|
1690
|
+
}
|
|
1691
|
+
runMoveUserToMT() {
|
|
1692
|
+
if (this.moveUser && this.moveUser.siteId && this.moveUser.userid) {
|
|
1693
|
+
this.userService.moveUserPending = true;
|
|
1694
|
+
this.moveInProgressUserId = this.moveUser.userid;
|
|
1695
|
+
this.setStatusToUser(this.moveUserIndex, 'In Progress');
|
|
1696
|
+
localStorage.setItem(LOCAL_STORAGE.USER_IN_MIGRATION, this.moveUser.userid);
|
|
1697
|
+
}
|
|
1698
|
+
const subscription = this.userService.moveUserToMT(this.customerId, this.moveUser)
|
|
1699
|
+
.subscribe(() => {
|
|
1700
|
+
this.userService.userMoved$.next(true);
|
|
1701
|
+
}, () => {
|
|
1702
|
+
this.removeUserInMigrationProgress();
|
|
1703
|
+
this.setStatusToUser(this.moveUserIndex, 'Migration Error');
|
|
1704
|
+
});
|
|
1705
|
+
this.subscriptions.push(subscription);
|
|
1706
|
+
}
|
|
1707
|
+
}
|
|
1708
|
+
UsersListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListComponent, deps: [{ token: UserService }, { token: APIService }, { token: ApiWebexService }, { token: NotificationService }, { token: UsersSearchService }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
1709
|
+
UsersListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UsersListComponent, selector: "app-users-list", inputs: { token: "token", customerId: "customerId", siteId: "siteId", host: "host" }, outputs: { openUser: "openUser", userMoved: "userMoved", switchToWizard: "switchToWizard" }, ngImport: i0, template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!showMoveUserWizard\" id=\"users-list\">\r\n <app-pagination\r\n [pagination]=\"usersSearchService.getPagination()\"\r\n [showPageSizeOptions]=\"true\"\r\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\r\n (pageEmitter)=\"pageEvent($event)\">\r\n </app-pagination>\r\n\r\n <table class=\"webex-table\" mat-table *ngIf=\"users?.length\" #table [dataSource]=\"dataSource\">\r\n\r\n <ng-container matColumnDef=\"user-icon\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">First / Last Name</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\"> {{ user.firstName }} {{ user.lastName }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\r\n <td class=\"user-site\" [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">\r\n {{ user.email }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Status</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-user-status icon-user-status-active\"></span>{{user.status}}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user, let i = index\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\">\r\n <mat-progress-spinner class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\"\r\n *ngIf=\"user.status === 'In Progress'\"></mat-progress-spinner>\r\n <button *ngIf=\"!(moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid)\"\r\n class=\"button-action-dot\" mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <div class=\"icon-actions-dots\">\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n </div>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\r\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'QuickMove', 'MT')\">Quick Move User to MT</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'MT', 'MT')\">Move User to MT</button>\r\n <button *ngIf=\"user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'DI', 'DI')\">Revert User to UCM/DI</button>\r\n <button mat-menu-item [disabled]=\"true\">Deactivate User</button>\r\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"role\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Administrator Role</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">{{ user.roleName || '' }}</td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</div>\r\n\r\n<app-move-user-wizard *ngIf=\"showMoveUserWizard\" [user]=\"moveUser\" (done)=\"closeMoveUserWizard(true)\"\r\n [customerId]=\"customerId\" (runMoveUser)=\"runMoveUserToMT()\"\r\n (closeMoveUserWizard)=\"closeMoveUserWizard(false)\"></app-move-user-wizard>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";table.mat-table{border-spacing:0;width:100%}::ng-deep .mat-paginator{background:none}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#000;font-size:14px}.webex-table tr:hover td:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-paginator{background:transparent!important}::ng-deep .mat-paginator-container{min-height:30px!important}::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}::ng-deep .pagination{font-size:13px;color:#0000008a}::ng-deep .per-page-block{display:flex;line-height:42px!important}::ng-deep .item_per_page{line-height:42px!important}::ng-deep .select-page-size{line-height:42px!important}::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}::ng-deep mat-progress-spinner.field-spinner{position:relative;margin:-20px auto auto}::ng-deep mat-progress-spinner.tab-spinner{position:relative;margin:0 auto auto}.icon-dot{display:block;color:#4f4f4f;font-size:16px;line-height:5px}.button-action-dot:hover{background:#dfdfdf}.button-action-dot{padding:0 5px 5px;border-radius:.25rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.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: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i11$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: PaginationComponent, selector: "app-pagination", inputs: ["pagination", "showPageSizeOptions", "showRefreshButton", "lengthPending"], outputs: ["pageEmitter", "pageNumberChangeEmitter"] }, { kind: "component", type: AppLoaderComponent, selector: "app-loader" }, { kind: "component", type: MoveUserWizardComponent, selector: "app-move-user-wizard", inputs: ["user", "customerId"], outputs: ["closeMoveUserWizard", "done", "runMoveUser"] }] });
|
|
1710
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListComponent, decorators: [{
|
|
1711
|
+
type: Component,
|
|
1712
|
+
args: [{ selector: 'app-users-list', template: "<app-loader *ngIf=\"dataPending\"></app-loader>\r\n<div *ngIf=\"!showMoveUserWizard\" id=\"users-list\">\r\n <app-pagination\r\n [pagination]=\"usersSearchService.getPagination()\"\r\n [showPageSizeOptions]=\"true\"\r\n (pageNumberChangeEmitter)=\"pageNumberChangeEvent($event)\"\r\n (pageEmitter)=\"pageEvent($event)\">\r\n </app-pagination>\r\n\r\n <table class=\"webex-table\" mat-table *ngIf=\"users?.length\" #table [dataSource]=\"dataSource\">\r\n\r\n <ng-container matColumnDef=\"user-icon\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-webex-box\"><span class=\"icon-webex icon-webex-user\"></span></span>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">First / Last Name</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\"> {{ user.firstName }} {{ user.lastName }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Email</th>\r\n <td class=\"user-site\" [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">\r\n {{ user.email }}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"status\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Status</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\"\r\n (click)=\"onUserClick(user)\">\r\n <span class=\"icon-user-status icon-user-status-active\"></span>{{user.status}}\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"actions\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\"></th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user, let i = index\"\r\n [ngClass]=\"{'disabled-user-row': moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid}\">\r\n <mat-progress-spinner class=\"field-spinner\"\r\n [diameter]=\"20\"\r\n mode=\"indeterminate\"\r\n *ngIf=\"user.status === 'In Progress'\"></mat-progress-spinner>\r\n <button *ngIf=\"!(moveUserPending && moveInProgressUserId && moveInProgressUserId === user?.userid)\"\r\n class=\"button-action-dot\" mat-icon-button [matMenuTriggerFor]=\"menu\">\r\n <div class=\"icon-actions-dots\">\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n <span class=\"icon-dot\">.</span>\r\n </div>\r\n </button>\r\n <mat-menu #menu=\"matMenu\">\r\n <button mat-menu-item [disabled]=\"true\">Resend Invitation</button>\r\n <button mat-menu-item [disabled]=\"true\">Reset Password</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'QuickMove', 'MT')\">Quick Move User to MT</button>\r\n <button *ngIf=\"!user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'MT', 'MT')\">Move User to MT</button>\r\n <button *ngIf=\"user.isMigrated\" mat-menu-item (click)=\"onMoveUser(user, i, 'DI', 'DI')\">Revert User to UCM/DI</button>\r\n <button mat-menu-item [disabled]=\"true\">Deactivate User</button>\r\n <button mat-menu-item [disabled]=\"true\">Delete User</button>\r\n </mat-menu>\r\n </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"role\">\r\n <th mat-header-cell *matHeaderCellDef class=\"webex-table-th\">Administrator Role</th>\r\n <td class=\"user-site\" mat-cell *matCellDef=\"let user\" (click)=\"onUserClick(user)\">{{ user.roleName || '' }}</td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n </table>\r\n</div>\r\n\r\n<app-move-user-wizard *ngIf=\"showMoveUserWizard\" [user]=\"moveUser\" (done)=\"closeMoveUserWizard(true)\"\r\n [customerId]=\"customerId\" (runMoveUser)=\"runMoveUserToMT()\"\r\n (closeMoveUserWizard)=\"closeMoveUserWizard(false)\"></app-move-user-wizard>\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";table.mat-table{border-spacing:0;width:100%}::ng-deep .mat-paginator{background:none}.icon-user-status{width:.5rem;height:.5rem;border-radius:50%;background-color:#707070;margin:0 5px 0 0}.icon-user-status.icon-user-status-active{background-color:#1d805f;display:inline-block}.mat-select{height:100%;line-height:35px}.mat-form-field-wrapper{padding-bottom:0!important}.mat-form-field{padding:0;max-width:300px}.fa:hover{color:#0d56aa!important}.mat-icon-button{background:transparent}.icon-webex-box{width:2rem;height:2rem;font-size:.7rem;line-height:1rem;display:inline-block;background:#d0d0d0;border-radius:2rem;line-height:40px;text-align:center}.icon-webex{filter:invert(12%) sepia(14%) saturate(4%) hue-rotate(354deg) brightness(103%) contrast(90%);background-repeat:no-repeat;background-position:center;display:inline-block;height:1rem;width:1rem}.icon-webex-user{background-image:url(\"data:image/svg+xml,%3C%3Fxml version%3D%221.0%22 encoding%3D%22UTF-8%22%3F%3E%3Csvg id%3D%22a%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 viewBox%3D%220 0 16.67 15.56%22%3E%3Cdefs%3E%3Cstyle%3E.b%7Bfill%3Anone%3Bstroke%3A%232c355d%3Bstroke-width%3A1.4px%3B%7D%3C%2Fstyle%3E%3C%2Fdefs%3E%3Cpath class%3D%22b%22 d%3D%22M4.87%2C3.89c0-1.72%2C1.51-3.19%2C3.47-3.19s3.47%2C1.47%2C3.47%2C3.19-1.51%2C3.19-3.47%2C3.19-3.47-1.47-3.47-3.19ZM.7%2C12.64c0-.37%2C.19-.76%2C.67-1.17%2C.48-.41%2C1.17-.78%2C2-1.09%2C1.66-.62%2C3.66-.93%2C4.97-.93s3.31%2C.31%2C4.97%2C.93c.83%2C.31%2C1.52%2C.68%2C2%2C1.09%2C.47%2C.41%2C.67%2C.8%2C.67%2C1.17v2.22H.7v-2.22Z%22%2F%3E%3C%2Fsvg%3E\")}.icon-user-status{display:inline-block}*{margin:0}body{background:#f7f7f7}body,th,td{font-family:Poppins,Poppins,sans-serif;font-size:14px}th{color:#0000008a;text-align:left}td{box-sizing:border-box;padding:10px 5px 10px 0}.content-box{margin:auto;position:relative;width:95%}.content-box table{width:100%}.edit-icon-td{width:50px;position:relative}.edit-icon-td button{position:absolute;top:4px}.mat-progress-spinner circle,.mat-spinner circle{stroke:#009fdb!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}.flex-box{display:flex;justify-content:flex-start}.user-info-box{background:white;display:grid;grid-template-columns:30% 70%;border-radius:8px;border:rgba(0,0,0,.2) 1px solid;padding:24px;font-weight:400;font-size:14px}.user-info-box h3{display:block;font-weight:500;font-size:16px}.mat-divider{margin:5px 0!important}.info-boxes-container{padding:24px 0;display:flex;flex-direction:column;gap:24px}.header-box{height:60px;width:100%;line-height:60px;background:white;border-bottom:1px solid #dedddd}.header-box .header-back-block{float:left}.header-box .header-button-block{float:right}.webex-table{width:100%;margin:auto}.webex-table tr{border-bottom:1px solid #dedede}.webex-table th{background:#f7f7f7;color:#636363;font-size:12px}.webex-table td{background:#fff;color:#000;font-size:14px}.webex-table tr:hover td:not(.disabled-user-row){background:#ededed;cursor:pointer}.webex-table th.mat-header-cell,.webex-table td.mat-cell,.webex-table td.mat-footer-cell{border-bottom:1px solid #dedede}.webex-table tr.mat-header-row{height:37px}.mat-form-field{padding:0 0 5px;width:93%}.mat-form-field.mat-form-field-disabled{border-bottom:none}.mat-error{color:#c73636;margin:13px 0 0}.select-box{border-radius:30px;background:#F3F6F6;border:1px solid #E2E9EF;height:35px;position:relative}.select-box select{border:none!important;background:transparent;height:100%;width:92%;margin:auto;display:block}option:focus,option:focus-visible{border:none!important;outline:none!important}option{height:30px;cursor:pointer;color:#636363}option:hover{background:#ededed!important}.mat-select{height:100%!important;line-height:35px!important}.info-holder,.input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__name,.input-holder__name{font-weight:500!important;font-size:14px!important}.info-holder__inputs .input-holder,.input-holder__inputs .input-holder{display:grid;grid-template-columns:30% 70%;align-items:baseline}.info-holder__inputs .input-holder__name,.input-holder__inputs .input-holder__name{font-weight:400!important;font-size:14px!important}.mat-form-field-wrapper,.mat-form-field-flex{height:30px!important}.mat-form-field-appearance-outline .mat-form-field-outline,.mat-form-field-outline .mat-form-field-outline-thick{height:35px!important}.mat-select{line-height:20px!important}.mat-form-field-appearance-outline .mat-form-field-infix{padding:14px 12px 10px;border-top:0;max-width:300px}.mat-tab-group{font-family:Inter,sans-serif}.mat-tab-label{font-weight:500!important;font-size:14px!important;height:auto!important;min-width:auto!important;padding:0!important}.mat-ink-bar{background-color:#000000e6!important;height:3px!important}.mat-form-field-wrapper{padding-bottom:0}.mat-form-field{max-width:300px}table{border-collapse:collapse;border-spacing:0}.mat-form-field-appearance-outline .mat-form-field-infix{padding:0!important}.mat-divider{margin:12px 0}::ng-deep .mat-form-field-wrapper{height:30px}::ng-deep .mat-form-field-flex{height:30px}::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline{height:35px}:ng-deep .mat-form-field-outline .mat-form-field-outline-thick{height:35px}::ng-deep .mat-select{line-height:20px}::ng-deep .mat-form-field-infix{border-top:0px!important}::ng-deep .mat-paginator{background:transparent!important}::ng-deep .mat-paginator-container{min-height:30px!important}::ng-deep .mat-paginator-range-label{margin:0 10px 0 24px!important;font-size:15px!important}::ng-deep .pagination{font-size:13px;color:#0000008a}::ng-deep .per-page-block{display:flex;line-height:42px!important}::ng-deep .item_per_page{line-height:42px!important}::ng-deep .select-page-size{line-height:42px!important}::ng-deep mat-progress-spinner.page-spinner{position:fixed;margin:auto;inset:0}::ng-deep mat-progress-spinner.field-spinner{position:relative;margin:-20px auto auto}::ng-deep mat-progress-spinner.tab-spinner{position:relative;margin:0 auto auto}.icon-dot{display:block;color:#4f4f4f;font-size:16px;line-height:5px}.button-action-dot:hover{background:#dfdfdf}.button-action-dot{padding:0 5px 5px;border-radius:.25rem}\n"] }]
|
|
1713
|
+
}], ctorParameters: function () { return [{ type: UserService }, { type: APIService }, { type: ApiWebexService }, { type: NotificationService }, { type: UsersSearchService }, { type: i1.MatDialog }]; }, propDecorators: { token: [{
|
|
1714
|
+
type: Input
|
|
1715
|
+
}], customerId: [{
|
|
1716
|
+
type: Input
|
|
1717
|
+
}], siteId: [{
|
|
1718
|
+
type: Input
|
|
1719
|
+
}], openUser: [{
|
|
1720
|
+
type: Output
|
|
1721
|
+
}], userMoved: [{
|
|
1722
|
+
type: Output
|
|
1723
|
+
}], switchToWizard: [{
|
|
1724
|
+
type: Output
|
|
1725
|
+
}], host: [{
|
|
1726
|
+
type: Input
|
|
1727
|
+
}] } });
|
|
1728
|
+
|
|
1729
|
+
class EventsCommunicationService {
|
|
1730
|
+
constructor() {
|
|
1731
|
+
this.onSuccessfulLoginEvent = new Subject();
|
|
1732
|
+
}
|
|
1733
|
+
}
|
|
1734
|
+
EventsCommunicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1735
|
+
EventsCommunicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService });
|
|
1736
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: EventsCommunicationService, decorators: [{
|
|
1737
|
+
type: Injectable
|
|
1738
|
+
}], ctorParameters: function () { return []; } });
|
|
1739
|
+
|
|
1740
|
+
class MaterialModule {
|
|
1741
|
+
}
|
|
1742
|
+
MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1743
|
+
MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [DragDropModule,
|
|
1744
|
+
MatButtonModule,
|
|
1745
|
+
MatListModule,
|
|
1746
|
+
MatProgressSpinnerModule,
|
|
1747
|
+
MatExpansionModule,
|
|
1748
|
+
MatInputModule,
|
|
1749
|
+
MatInputModule,
|
|
1750
|
+
MatListModule,
|
|
1751
|
+
MatTreeModule,
|
|
1752
|
+
MatTreeModule,
|
|
1753
|
+
MatNativeDateModule,
|
|
1754
|
+
MatDatepickerModule,
|
|
1755
|
+
MatTooltipModule,
|
|
1756
|
+
MatAutocompleteModule,
|
|
1757
|
+
MatChipsModule,
|
|
1758
|
+
MatSidenavModule,
|
|
1759
|
+
MatFormFieldModule,
|
|
1760
|
+
MatStepperModule,
|
|
1761
|
+
MatTabsModule,
|
|
1762
|
+
MatCardModule,
|
|
1763
|
+
MatSelectModule,
|
|
1764
|
+
MatCheckboxModule,
|
|
1765
|
+
MatSlideToggleModule,
|
|
1766
|
+
MatTableModule,
|
|
1767
|
+
MatPaginatorModule,
|
|
1768
|
+
MatMenuModule,
|
|
1769
|
+
MatDialogModule,
|
|
1770
|
+
MatRadioModule], exports: [DragDropModule,
|
|
1771
|
+
MatButtonModule,
|
|
1772
|
+
MatListModule,
|
|
1773
|
+
MatProgressSpinnerModule,
|
|
1774
|
+
MatExpansionModule,
|
|
1775
|
+
MatInputModule,
|
|
1776
|
+
MatInputModule,
|
|
1777
|
+
MatListModule,
|
|
1778
|
+
MatTreeModule,
|
|
1779
|
+
MatTreeModule,
|
|
1780
|
+
MatNativeDateModule,
|
|
1781
|
+
MatDatepickerModule,
|
|
1782
|
+
MatTooltipModule,
|
|
1783
|
+
MatAutocompleteModule,
|
|
1784
|
+
MatChipsModule,
|
|
1785
|
+
MatSidenavModule,
|
|
1786
|
+
MatFormFieldModule,
|
|
1787
|
+
MatStepperModule,
|
|
1788
|
+
MatTabsModule,
|
|
1789
|
+
MatCardModule,
|
|
1790
|
+
MatCheckboxModule,
|
|
1791
|
+
MatSelectModule,
|
|
1792
|
+
MatSlideToggleModule,
|
|
1793
|
+
MatProgressSpinnerModule,
|
|
1794
|
+
MatTableModule,
|
|
1795
|
+
MatPaginatorModule,
|
|
1796
|
+
MatMenuModule,
|
|
1797
|
+
MatDialogModule,
|
|
1798
|
+
MatRadioModule] });
|
|
1799
|
+
MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [DragDropModule,
|
|
1800
|
+
MatButtonModule,
|
|
1801
|
+
MatListModule,
|
|
1802
|
+
MatProgressSpinnerModule,
|
|
1803
|
+
MatExpansionModule,
|
|
1804
|
+
MatInputModule,
|
|
1805
|
+
MatInputModule,
|
|
1806
|
+
MatListModule,
|
|
1807
|
+
MatTreeModule,
|
|
1808
|
+
MatTreeModule,
|
|
1809
|
+
MatNativeDateModule,
|
|
1810
|
+
MatDatepickerModule,
|
|
1811
|
+
MatTooltipModule,
|
|
1812
|
+
MatAutocompleteModule,
|
|
1813
|
+
MatChipsModule,
|
|
1814
|
+
MatSidenavModule,
|
|
1815
|
+
MatFormFieldModule,
|
|
1816
|
+
MatStepperModule,
|
|
1817
|
+
MatTabsModule,
|
|
1818
|
+
MatCardModule,
|
|
1819
|
+
MatSelectModule,
|
|
1820
|
+
MatCheckboxModule,
|
|
1821
|
+
MatSlideToggleModule,
|
|
1822
|
+
MatTableModule,
|
|
1823
|
+
MatPaginatorModule,
|
|
1824
|
+
MatMenuModule,
|
|
1825
|
+
MatDialogModule,
|
|
1826
|
+
MatRadioModule, DragDropModule,
|
|
1827
|
+
MatButtonModule,
|
|
1828
|
+
MatListModule,
|
|
1829
|
+
MatProgressSpinnerModule,
|
|
1830
|
+
MatExpansionModule,
|
|
1831
|
+
MatInputModule,
|
|
1832
|
+
MatInputModule,
|
|
1833
|
+
MatListModule,
|
|
1834
|
+
MatTreeModule,
|
|
1835
|
+
MatTreeModule,
|
|
1836
|
+
MatNativeDateModule,
|
|
1837
|
+
MatDatepickerModule,
|
|
1838
|
+
MatTooltipModule,
|
|
1839
|
+
MatAutocompleteModule,
|
|
1840
|
+
MatChipsModule,
|
|
1841
|
+
MatSidenavModule,
|
|
1842
|
+
MatFormFieldModule,
|
|
1843
|
+
MatStepperModule,
|
|
1844
|
+
MatTabsModule,
|
|
1845
|
+
MatCardModule,
|
|
1846
|
+
MatCheckboxModule,
|
|
1847
|
+
MatSelectModule,
|
|
1848
|
+
MatSlideToggleModule,
|
|
1849
|
+
MatProgressSpinnerModule,
|
|
1850
|
+
MatTableModule,
|
|
1851
|
+
MatPaginatorModule,
|
|
1852
|
+
MatMenuModule,
|
|
1853
|
+
MatDialogModule,
|
|
1854
|
+
MatRadioModule] });
|
|
1855
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, decorators: [{
|
|
1856
|
+
type: NgModule,
|
|
1857
|
+
args: [{
|
|
1858
|
+
imports: [
|
|
1859
|
+
DragDropModule,
|
|
1860
|
+
MatButtonModule,
|
|
1861
|
+
MatListModule,
|
|
1862
|
+
MatProgressSpinnerModule,
|
|
1863
|
+
MatExpansionModule,
|
|
1864
|
+
MatInputModule,
|
|
1865
|
+
MatInputModule,
|
|
1866
|
+
MatListModule,
|
|
1867
|
+
MatTreeModule,
|
|
1868
|
+
MatTreeModule,
|
|
1869
|
+
MatNativeDateModule,
|
|
1870
|
+
MatDatepickerModule,
|
|
1871
|
+
MatTooltipModule,
|
|
1872
|
+
MatAutocompleteModule,
|
|
1873
|
+
MatChipsModule,
|
|
1874
|
+
MatSidenavModule,
|
|
1875
|
+
MatFormFieldModule,
|
|
1876
|
+
MatStepperModule,
|
|
1877
|
+
MatTabsModule,
|
|
1878
|
+
MatCardModule,
|
|
1879
|
+
MatSelectModule,
|
|
1880
|
+
MatCheckboxModule,
|
|
1881
|
+
MatSlideToggleModule,
|
|
1882
|
+
MatTableModule,
|
|
1883
|
+
MatPaginatorModule,
|
|
1884
|
+
MatMenuModule,
|
|
1885
|
+
MatDialogModule,
|
|
1886
|
+
MatRadioModule
|
|
1887
|
+
],
|
|
1888
|
+
exports: [
|
|
1889
|
+
DragDropModule,
|
|
1890
|
+
MatButtonModule,
|
|
1891
|
+
MatListModule,
|
|
1892
|
+
MatProgressSpinnerModule,
|
|
1893
|
+
MatExpansionModule,
|
|
1894
|
+
MatInputModule,
|
|
1895
|
+
MatInputModule,
|
|
1896
|
+
MatListModule,
|
|
1897
|
+
MatTreeModule,
|
|
1898
|
+
MatTreeModule,
|
|
1899
|
+
MatNativeDateModule,
|
|
1900
|
+
MatDatepickerModule,
|
|
1901
|
+
MatTooltipModule,
|
|
1902
|
+
MatAutocompleteModule,
|
|
1903
|
+
MatChipsModule,
|
|
1904
|
+
MatSidenavModule,
|
|
1905
|
+
MatFormFieldModule,
|
|
1906
|
+
MatStepperModule,
|
|
1907
|
+
MatTabsModule,
|
|
1908
|
+
MatCardModule,
|
|
1909
|
+
MatCheckboxModule,
|
|
1910
|
+
MatSelectModule,
|
|
1911
|
+
MatSlideToggleModule,
|
|
1912
|
+
MatProgressSpinnerModule,
|
|
1913
|
+
MatTableModule,
|
|
1914
|
+
MatPaginatorModule,
|
|
1915
|
+
MatMenuModule,
|
|
1916
|
+
MatDialogModule,
|
|
1917
|
+
MatRadioModule
|
|
1918
|
+
],
|
|
1919
|
+
}]
|
|
1920
|
+
}] });
|
|
1921
|
+
|
|
1922
|
+
class UsersListModule {
|
|
1923
|
+
}
|
|
1924
|
+
UsersListModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1925
|
+
UsersListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, declarations: [UsersListComponent,
|
|
1926
|
+
PaginationComponent,
|
|
1927
|
+
AppLoaderComponent,
|
|
1928
|
+
MoveUserWizardComponent,
|
|
1929
|
+
MoveUserStepperComponent,
|
|
1930
|
+
UserListConfirmDialogComponent,
|
|
1931
|
+
DevicesMoveUserWizardTabComponent,
|
|
1932
|
+
DeviceMoveUserWizardComponent], imports: [BrowserModule,
|
|
1933
|
+
FormsModule,
|
|
1934
|
+
ReactiveFormsModule,
|
|
1935
|
+
HttpClientModule,
|
|
1936
|
+
MaterialModule], exports: [UsersListComponent] });
|
|
1937
|
+
UsersListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, providers: [
|
|
1938
|
+
UserService,
|
|
1939
|
+
APIService,
|
|
1940
|
+
EventsCommunicationService,
|
|
1941
|
+
UsersSearchService,
|
|
1942
|
+
NotificationService,
|
|
1943
|
+
RemoveKynFromIBMService,
|
|
1944
|
+
ApiWebexService,
|
|
1945
|
+
DnsService,
|
|
1946
|
+
SiteSettingsService,
|
|
1947
|
+
MoveUserService
|
|
1948
|
+
], imports: [BrowserModule,
|
|
1949
|
+
FormsModule,
|
|
1950
|
+
ReactiveFormsModule,
|
|
1951
|
+
HttpClientModule,
|
|
1952
|
+
MaterialModule] });
|
|
1953
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UsersListModule, decorators: [{
|
|
1954
|
+
type: NgModule,
|
|
1955
|
+
args: [{
|
|
1956
|
+
declarations: [
|
|
1957
|
+
UsersListComponent,
|
|
1958
|
+
PaginationComponent,
|
|
1959
|
+
AppLoaderComponent,
|
|
1960
|
+
MoveUserWizardComponent,
|
|
1961
|
+
MoveUserStepperComponent,
|
|
1962
|
+
UserListConfirmDialogComponent,
|
|
1963
|
+
DevicesMoveUserWizardTabComponent,
|
|
1964
|
+
DeviceMoveUserWizardComponent
|
|
1965
|
+
],
|
|
1966
|
+
imports: [
|
|
1967
|
+
BrowserModule,
|
|
1968
|
+
FormsModule,
|
|
1969
|
+
ReactiveFormsModule,
|
|
1970
|
+
HttpClientModule,
|
|
1971
|
+
MaterialModule
|
|
1972
|
+
],
|
|
1973
|
+
providers: [
|
|
1974
|
+
UserService,
|
|
1975
|
+
APIService,
|
|
1976
|
+
EventsCommunicationService,
|
|
1977
|
+
UsersSearchService,
|
|
1978
|
+
NotificationService,
|
|
1979
|
+
RemoveKynFromIBMService,
|
|
1980
|
+
ApiWebexService,
|
|
1981
|
+
DnsService,
|
|
1982
|
+
SiteSettingsService,
|
|
1983
|
+
MoveUserService
|
|
1984
|
+
],
|
|
1985
|
+
exports: [UsersListComponent]
|
|
1986
|
+
}]
|
|
1987
|
+
}] });
|
|
1988
|
+
|
|
1989
|
+
/**
|
|
1990
|
+
* Generated bundle index. Do not edit.
|
|
1991
|
+
*/
|
|
1992
|
+
|
|
1993
|
+
export { APIService, EventsCommunicationService, NotificationService, RemoveKynFromIBMService, UserService, UsersListComponent, UsersListModule, UsersSearchService };
|
|
1994
|
+
//# sourceMappingURL=tuki-io-tuki-widgets-users-list.mjs.map
|