@thetradeengineorg1/snova-shell-module 0.0.259 → 0.0.261
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 -24
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js +18874 -18887
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -1
- package/esm2015/lib/globaldependencies/components/avatar.component.js +33 -33
- package/esm2015/lib/globaldependencies/components/componentbase.js +538 -538
- package/esm2015/lib/globaldependencies/constants/feature-ids.js +449 -449
- package/esm2015/lib/globaldependencies/constants/localstorage-properties.js +38 -38
- package/esm2015/lib/globaldependencies/helpers/dom.helper.js +70 -70
- package/esm2015/lib/globaldependencies/helpers/fontawesome-icons.js +144 -144
- package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +37 -37
- package/esm2015/lib/globaldependencies/helpers/window.helper.js +32 -32
- package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +40 -40
- package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +36 -36
- package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +24 -24
- package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +24 -24
- package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +22 -22
- package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +24 -24
- package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +346 -346
- package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +23 -23
- package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +25 -25
- package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +27 -27
- package/esm2015/lib/shell-components/components/Payments/account.component.js +121 -121
- package/esm2015/lib/shell-components/components/Payments/company-information.js +558 -558
- package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +636 -636
- package/esm2015/lib/shell-components/components/Payments/document.component.js +129 -129
- package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +90 -90
- package/esm2015/lib/shell-components/components/Payments/product-service.component.js +438 -438
- package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +249 -249
- package/esm2015/lib/shell-components/components/Payments/transactions.component.js +172 -172
- package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +350 -350
- package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +102 -102
- package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +126 -139
- package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +502 -502
- package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +98 -98
- package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +87 -87
- package/esm2015/lib/shell-components/components/header-side/header-side.component.js +2342 -2344
- package/esm2015/lib/shell-components/components/header-top/header-top.component.js +489 -489
- package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +55 -55
- package/esm2015/lib/shell-components/components/menu/menu.component.js +3413 -3413
- package/esm2015/lib/shell-components/components/menu/searchTask.enum.js +10 -10
- package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +110 -110
- package/esm2015/lib/shell-components/components/notifications/notifications.component.js +534 -534
- package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +39 -39
- package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +148 -148
- package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +439 -439
- package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +75 -75
- package/esm2015/lib/shell-components/constants/api-urls.js +1052 -1052
- package/esm2015/lib/shell-components/constants/available-languages.js +25 -25
- package/esm2015/lib/shell-components/constants/channel-names.js +38 -38
- package/esm2015/lib/shell-components/constants/menu-categories.js +6 -6
- package/esm2015/lib/shell-components/constants/notification-routes.js +6 -6
- package/esm2015/lib/shell-components/constants/notification-type-ids.js +42 -42
- package/esm2015/lib/shell-components/enum/recentSearchType.enum.js +13 -13
- package/esm2015/lib/shell-components/models/AppMenuItemModel.js +3 -3
- package/esm2015/lib/shell-components/models/AppNotification.js +17 -17
- package/esm2015/lib/shell-components/models/AssetAssignedNotificationModel.js +12 -12
- package/esm2015/lib/shell-components/models/ChannelUpdateModel.js +3 -3
- package/esm2015/lib/shell-components/models/EmployeeStatusModel.js +3 -3
- package/esm2015/lib/shell-components/models/IAdjust-screen-options.js +2 -2
- package/esm2015/lib/shell-components/models/IBadge.js +2 -2
- package/esm2015/lib/shell-components/models/IChildItem.js +2 -2
- package/esm2015/lib/shell-components/models/ILayout-change-options.js +2 -2
- package/esm2015/lib/shell-components/models/IMenuItem.js +2 -2
- package/esm2015/lib/shell-components/models/IlayoutConf.js +2 -2
- package/esm2015/lib/shell-components/models/IntroModel.js +3 -3
- package/esm2015/lib/shell-components/models/MessageDetails.js +3 -3
- package/esm2015/lib/shell-components/models/MessageTypingDetails.js +3 -3
- package/esm2015/lib/shell-components/models/NewProjectCreatedNotificationModel.js +10 -10
- package/esm2015/lib/shell-components/models/NewProjectFeatureNotificationModel.js +10 -10
- package/esm2015/lib/shell-components/models/NotificationsOutPutModel.js +22 -22
- package/esm2015/lib/shell-components/models/ProjectSearchCriteriaInputModel.js +3 -3
- package/esm2015/lib/shell-components/models/RecentSearchModel.js +5 -5
- package/esm2015/lib/shell-components/models/ReportConfigAssignedNotification.js +11 -11
- package/esm2015/lib/shell-components/models/ReportSubmittedNotification.js +12 -12
- package/esm2015/lib/shell-components/models/RoleUpdatedNotification.js +9 -9
- package/esm2015/lib/shell-components/models/UserStoryAssignedNotification.js +13 -13
- package/esm2015/lib/shell-components/models/archiveUserStoryModel.js +10 -10
- package/esm2015/lib/shell-components/models/companieslist.model.js +3 -3
- package/esm2015/lib/shell-components/models/company-model.js +7 -7
- package/esm2015/lib/shell-components/models/company-payment-model.js +3 -3
- package/esm2015/lib/shell-components/models/dragedWidget.js +3 -3
- package/esm2015/lib/shell-components/models/employee-List.js +3 -3
- package/esm2015/lib/shell-components/models/employee.js +4 -4
- package/esm2015/lib/shell-components/models/entityRoleFeature.js +3 -3
- package/esm2015/lib/shell-components/models/export-configuration-model.js +3 -3
- package/esm2015/lib/shell-components/models/export-data.module.js +8 -8
- package/esm2015/lib/shell-components/models/goalApprovedNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/import-configuration-model.js +3 -3
- package/esm2015/lib/shell-components/models/initialStatusofUsers.js +3 -3
- package/esm2015/lib/shell-components/models/invoiceOutput-model.js +3 -3
- package/esm2015/lib/shell-components/models/leaveApplicationNotifiction.js +9 -9
- package/esm2015/lib/shell-components/models/multiChartsScheduling.js +11 -11
- package/esm2015/lib/shell-components/models/parkUserStoryInputModel.js +10 -10
- package/esm2015/lib/shell-components/models/project.js +3 -3
- package/esm2015/lib/shell-components/models/recentSearchApiModel.js +3 -3
- package/esm2015/lib/shell-components/models/searchCriteriaInputModelBase.js +3 -3
- package/esm2015/lib/shell-components/models/shellModulesInfo.js +7 -7
- package/esm2015/lib/shell-components/models/softlabels-model.js +7 -7
- package/esm2015/lib/shell-components/models/sprintReplanRequestedModel.js +9 -9
- package/esm2015/lib/shell-components/models/sprintStartedNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/store-model.js +3 -3
- package/esm2015/lib/shell-components/models/store-search-model.js +4 -4
- package/esm2015/lib/shell-components/models/themes.model.js +3 -3
- package/esm2015/lib/shell-components/models/timesheetenabledisable.js +4 -4
- package/esm2015/lib/shell-components/models/user.js +8 -8
- package/esm2015/lib/shell-components/models/userStory.js +3 -3
- package/esm2015/lib/shell-components/models/userStoryCommentNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/userStoryUpdateNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/userstory-custom-fields.model.js +3 -3
- package/esm2015/lib/shell-components/models/validation.model.js +2 -2
- package/esm2015/lib/shell-components/models/widgetlist.js +6 -6
- package/esm2015/lib/shell-components/models/workspaceList.js +3 -3
- package/esm2015/lib/shell-components/services/authentication.service.js +96 -96
- package/esm2015/lib/shell-components/services/chat.service.js +67 -67
- package/esm2015/lib/shell-components/services/common-used.service.js +263 -263
- package/esm2015/lib/shell-components/services/feature.service.js +101 -101
- package/esm2015/lib/shell-components/services/google-analytics.service.js +24 -24
- package/esm2015/lib/shell-components/services/layout.service.js +68 -68
- package/esm2015/lib/shell-components/services/payment.service.js +103 -103
- package/esm2015/lib/shell-components/services/recentSearch.service.js +90 -90
- package/esm2015/lib/shell-components/services/shell.modules.service.js +24 -24
- package/esm2015/lib/shell-components/services/signalr.service.js +113 -113
- package/esm2015/lib/shell-components/services/theme.service.js +161 -161
- package/esm2015/lib/shell-components/shell.module.js +450 -450
- package/esm2015/lib/shell-components/shell.routing.js +16 -16
- package/esm2015/lib/shell-components/store/actions/authentication.actions.js +260 -260
- package/esm2015/lib/shell-components/store/actions/chat.actions.js +248 -248
- package/esm2015/lib/shell-components/store/actions/menuitems.actions.js +39 -39
- package/esm2015/lib/shell-components/store/actions/notification-validator.action.js +19 -19
- package/esm2015/lib/shell-components/store/actions/notifications.actions.js +74 -74
- package/esm2015/lib/shell-components/store/effects/authentication.effects.js +503 -503
- package/esm2015/lib/shell-components/store/effects/chat.effects.js +139 -139
- package/esm2015/lib/shell-components/store/effects/index.js +13 -13
- package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +53 -53
- package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +56 -56
- package/esm2015/lib/shell-components/store/effects/notifications.effects.js +116 -116
- package/esm2015/lib/shell-components/store/reducers/authentication.reducers.js +86 -86
- package/esm2015/lib/shell-components/store/reducers/chat.reducers.js +68 -68
- package/esm2015/lib/shell-components/store/reducers/index.js +80 -80
- package/esm2015/lib/shell-components/store/reducers/menuitems.reducers.js +56 -56
- package/esm2015/lib/shell-components/store/reducers/notification-validator.reducers.js +13 -13
- package/esm2015/lib/shell-components/store/reducers/notifications.reducers.js +38 -38
- package/esm2015/public-api.js +92 -92
- package/esm2015/store/reducers/index.js +47 -47
- package/esm2015/thetradeengineorg1-snova-shell-module.js +4 -4
- package/fesm2015/thetradeengineorg1-snova-shell-module.js +16984 -16997
- package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -1
- package/lib/globaldependencies/components/avatar.component.d.ts +10 -10
- package/lib/globaldependencies/components/componentbase.d.ts +455 -455
- package/lib/globaldependencies/constants/feature-ids.d.ts +448 -448
- package/lib/globaldependencies/constants/localstorage-properties.d.ts +37 -37
- package/lib/globaldependencies/helpers/dom.helper.d.ts +7 -7
- package/lib/globaldependencies/helpers/fontawesome-icons.d.ts +1 -1
- package/lib/globaldependencies/helpers/moment-utc-date-adapter.d.ts +9 -9
- package/lib/globaldependencies/helpers/window.helper.d.ts +12 -12
- package/lib/globaldependencies/intercepter/jwt.interceptor.d.ts +11 -11
- package/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/highLightText.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/orderby-pipe.d.ts +9 -9
- package/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/sanitize.pipe.d.ts +11 -11
- package/lib/globaldependencies/pipes/softlabels.pipes.d.ts +8 -8
- package/lib/globaldependencies/pipes/utctolocaltime.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/workflowstatus.pipes.d.ts +8 -8
- package/lib/shell-components/components/Payments/account.component.d.ts +14 -14
- package/lib/shell-components/components/Payments/company-information.d.ts +62 -62
- package/lib/shell-components/components/Payments/company-plans.component.d.ts +47 -47
- package/lib/shell-components/components/Payments/document.component.d.ts +20 -20
- package/lib/shell-components/components/Payments/payment-method.component.d.ts +15 -15
- package/lib/shell-components/components/Payments/product-service.component.d.ts +48 -48
- package/lib/shell-components/components/Payments/purchase-more-licenses.d.ts +37 -37
- package/lib/shell-components/components/Payments/transactions.component.d.ts +28 -28
- package/lib/shell-components/components/admin-layout/admin-layout.component.d.ts +67 -67
- package/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.d.ts +32 -32
- package/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.d.ts +32 -32
- package/lib/shell-components/components/export-import-configuration/export-configuration.component.d.ts +60 -60
- package/lib/shell-components/components/feed-time/feed-time-dialog.component.d.ts +33 -33
- package/lib/shell-components/components/feed-time/feed-time.component.d.ts +27 -27
- package/lib/shell-components/components/header-side/header-side.component.d.ts +220 -220
- package/lib/shell-components/components/header-side/header-side.component.d.ts.map +1 -1
- package/lib/shell-components/components/header-top/header-top.component.d.ts +40 -40
- package/lib/shell-components/components/lives/lives-welcome-page.d.ts +14 -14
- package/lib/shell-components/components/menu/menu.component.d.ts +220 -220
- package/lib/shell-components/components/menu/searchTask.enum.d.ts +8 -8
- package/lib/shell-components/components/notifications/announcement-dialog.component.d.ts +27 -27
- package/lib/shell-components/components/notifications/notifications.component.d.ts +53 -53
- package/lib/shell-components/components/sidebar-top/sidebar-top.component.d.ts +10 -10
- package/lib/shell-components/components/sidenav/side-bar.component.d.ts +23 -23
- package/lib/shell-components/components/sidenav/sidenav.component.d.ts +17 -17
- package/lib/shell-components/components/submit-feedback/submit-feedback.component.d.ts +25 -25
- package/lib/shell-components/constants/api-urls.d.ts +1051 -1051
- package/lib/shell-components/constants/available-languages.d.ts +7 -7
- package/lib/shell-components/constants/channel-names.d.ts +37 -37
- package/lib/shell-components/constants/menu-categories.d.ts +5 -5
- package/lib/shell-components/constants/notification-routes.d.ts +5 -5
- package/lib/shell-components/constants/notification-type-ids.d.ts +41 -41
- package/lib/shell-components/enum/recentSearchType.enum.d.ts +11 -11
- package/lib/shell-components/models/AppMenuItemModel.d.ts +12 -12
- package/lib/shell-components/models/AppNotification.d.ts +12 -12
- package/lib/shell-components/models/AssetAssignedNotificationModel.d.ts +10 -10
- package/lib/shell-components/models/ChannelUpdateModel.d.ts +47 -47
- package/lib/shell-components/models/EmployeeStatusModel.d.ts +11 -11
- package/lib/shell-components/models/IAdjust-screen-options.d.ts +4 -4
- package/lib/shell-components/models/IBadge.d.ts +4 -4
- package/lib/shell-components/models/IChildItem.d.ts +7 -7
- package/lib/shell-components/models/ILayout-change-options.d.ts +4 -4
- package/lib/shell-components/models/IMenuItem.d.ts +14 -14
- package/lib/shell-components/models/IlayoutConf.d.ts +10 -10
- package/lib/shell-components/models/IntroModel.d.ts +3 -3
- package/lib/shell-components/models/MessageDetails.d.ts +55 -55
- package/lib/shell-components/models/MessageTypingDetails.d.ts +9 -9
- package/lib/shell-components/models/NewProjectCreatedNotificationModel.d.ts +8 -8
- package/lib/shell-components/models/NewProjectFeatureNotificationModel.d.ts +8 -8
- package/lib/shell-components/models/NotificationsOutPutModel.d.ts +41 -41
- package/lib/shell-components/models/ProjectSearchCriteriaInputModel.d.ts +10 -10
- package/lib/shell-components/models/RecentSearchModel.d.ts +14 -14
- package/lib/shell-components/models/ReportConfigAssignedNotification.d.ts +9 -9
- package/lib/shell-components/models/ReportSubmittedNotification.d.ts +10 -10
- package/lib/shell-components/models/RoleUpdatedNotification.d.ts +7 -7
- package/lib/shell-components/models/UserStoryAssignedNotification.d.ts +8 -8
- package/lib/shell-components/models/archiveUserStoryModel.d.ts +7 -7
- package/lib/shell-components/models/companieslist.model.d.ts +8 -8
- package/lib/shell-components/models/company-model.d.ts +31 -31
- package/lib/shell-components/models/company-payment-model.d.ts +18 -18
- package/lib/shell-components/models/dragedWidget.d.ts +16 -16
- package/lib/shell-components/models/employee-List.d.ts +8 -8
- package/lib/shell-components/models/employee.d.ts +60 -60
- package/lib/shell-components/models/entityRoleFeature.d.ts +9 -9
- package/lib/shell-components/models/export-configuration-model.d.ts +8 -8
- package/lib/shell-components/models/export-data.module.d.ts +6 -6
- package/lib/shell-components/models/goalApprovedNotificationModel.d.ts +8 -8
- package/lib/shell-components/models/import-configuration-model.d.ts +3 -3
- package/lib/shell-components/models/initialStatusofUsers.d.ts +5 -5
- package/lib/shell-components/models/invoiceOutput-model.d.ts +9 -9
- package/lib/shell-components/models/leaveApplicationNotifiction.d.ts +7 -7
- package/lib/shell-components/models/multiChartsScheduling.d.ts +9 -9
- package/lib/shell-components/models/parkUserStoryInputModel.d.ts +7 -7
- package/lib/shell-components/models/project.d.ts +28 -28
- package/lib/shell-components/models/recentSearchApiModel.d.ts +6 -6
- package/lib/shell-components/models/searchCriteriaInputModelBase.d.ts +10 -10
- package/lib/shell-components/models/shellModulesInfo.d.ts +16 -16
- package/lib/shell-components/models/softlabels-model.d.ts +66 -66
- package/lib/shell-components/models/sprintReplanRequestedModel.d.ts +7 -7
- package/lib/shell-components/models/sprintStartedNotificationModel.d.ts +7 -7
- package/lib/shell-components/models/store-model.d.ts +13 -13
- package/lib/shell-components/models/store-search-model.d.ts +7 -7
- package/lib/shell-components/models/themes.model.d.ts +9 -9
- package/lib/shell-components/models/timesheetenabledisable.d.ts +16 -16
- package/lib/shell-components/models/user.d.ts +40 -40
- package/lib/shell-components/models/userStory.d.ts +188 -188
- package/lib/shell-components/models/userStoryCommentNotificationModel.d.ts +6 -6
- package/lib/shell-components/models/userStoryUpdateNotificationModel.d.ts +6 -6
- package/lib/shell-components/models/userstory-custom-fields.model.d.ts +6 -6
- package/lib/shell-components/models/validation.model.d.ts +5 -5
- package/lib/shell-components/models/widgetlist.d.ts +28 -28
- package/lib/shell-components/models/workspaceList.d.ts +19 -19
- package/lib/shell-components/services/authentication.service.d.ts +18 -18
- package/lib/shell-components/services/chat.service.d.ts +16 -16
- package/lib/shell-components/services/common-used.service.d.ts +45 -45
- package/lib/shell-components/services/feature.service.d.ts +19 -19
- package/lib/shell-components/services/google-analytics.service.d.ts +9 -9
- package/lib/shell-components/services/layout.service.d.ts +23 -23
- package/lib/shell-components/services/payment.service.d.ts +19 -19
- package/lib/shell-components/services/recentSearch.service.d.ts +16 -16
- package/lib/shell-components/services/shell.modules.service.d.ts +9 -9
- package/lib/shell-components/services/signalr.service.d.ts +25 -25
- package/lib/shell-components/services/theme.service.d.ts +14 -14
- package/lib/shell-components/shell.module.d.ts +119 -119
- package/lib/shell-components/shell.routing.d.ts +2 -2
- package/lib/shell-components/store/actions/authentication.actions.d.ts +327 -327
- package/lib/shell-components/store/actions/chat.actions.d.ts +399 -399
- package/lib/shell-components/store/actions/menuitems.actions.d.ts +51 -51
- package/lib/shell-components/store/actions/notification-validator.action.d.ts +25 -25
- package/lib/shell-components/store/actions/notifications.actions.d.ts +116 -116
- package/lib/shell-components/store/effects/authentication.effects.d.ts +54 -54
- package/lib/shell-components/store/effects/chat.effects.d.ts +30 -30
- package/lib/shell-components/store/effects/index.d.ts +1 -1
- package/lib/shell-components/store/effects/menuitems.effects.d.ts +17 -17
- package/lib/shell-components/store/effects/notification-validator.effects.d.ts +21 -21
- package/lib/shell-components/store/effects/notifications.effects.d.ts +23 -23
- package/lib/shell-components/store/reducers/authentication.reducers.d.ts +30 -30
- package/lib/shell-components/store/reducers/chat.reducers.d.ts +17 -17
- package/lib/shell-components/store/reducers/index.d.ts +59 -59
- package/lib/shell-components/store/reducers/menuitems.reducers.d.ts +11 -11
- package/lib/shell-components/store/reducers/notification-validator.reducers.d.ts +5 -5
- package/lib/shell-components/store/reducers/notifications.reducers.d.ts +10 -10
- package/package.json +1 -1
- package/public-api.d.ts +82 -82
- package/store/reducers/index.d.ts +24 -24
- package/thetradeengineorg1-snova-shell-module.d.ts +5 -5
|
@@ -1,438 +1,438 @@
|
|
|
1
|
-
import { Component, Inject, ViewChildren } from "@angular/core";
|
|
2
|
-
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
3
|
-
import { LocalStorageProperties } from '../../../globaldependencies/constants/localstorage-properties';
|
|
4
|
-
import '../../../globaldependencies/helpers/fontawesome-icons';
|
|
5
|
-
import { PurchaseMoreLicensesComponent } from './purchase-more-licenses';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "ngx-toastr";
|
|
8
|
-
import * as i2 from "../../services/payment.service";
|
|
9
|
-
import * as i3 from "@angular/router";
|
|
10
|
-
import * as i4 from "ngx-cookie-service";
|
|
11
|
-
import * as i5 from "@angular/material/dialog";
|
|
12
|
-
import * as i6 from "@angular/flex-layout/flex";
|
|
13
|
-
import * as i7 from "@angular/material/card";
|
|
14
|
-
import * as i8 from "@angular/material/button";
|
|
15
|
-
import * as i9 from "@ncstate/sat-popover";
|
|
16
|
-
import * as i10 from "@angular/common";
|
|
17
|
-
import * as i11 from "@fortawesome/angular-fontawesome";
|
|
18
|
-
const _c0 = ["closeBookingPopup"];
|
|
19
|
-
function ProductAndServicesComponent_mat_card_13_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
-
const _r8 = i0.ɵɵgetCurrentView();
|
|
21
|
-
i0.ɵɵelementStart(0, "div", 23);
|
|
22
|
-
i0.ɵɵelementStart(1, "div", 3);
|
|
23
|
-
i0.ɵɵelementStart(2, "span");
|
|
24
|
-
i0.ɵɵtext(3, " We are sorry to see you go. Thank you for letting us to be a part of your growth so far. We'll miss you around here! If you decide you'd like to continue using this product, you can renew at any time by clicking on the subscribe button. We hope to see you around! Thank you. ");
|
|
25
|
-
i0.ɵɵelementEnd();
|
|
26
|
-
i0.ɵɵelementEnd();
|
|
27
|
-
i0.ɵɵelementStart(4, "div", 4);
|
|
28
|
-
i0.ɵɵelementStart(5, "button", 24);
|
|
29
|
-
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return ctx_r7.navigateToSubscription(); });
|
|
30
|
-
i0.ɵɵtext(6, " Subscribe ");
|
|
31
|
-
i0.ɵɵelementEnd();
|
|
32
|
-
i0.ɵɵelementEnd();
|
|
33
|
-
i0.ɵɵelementEnd();
|
|
34
|
-
} }
|
|
35
|
-
function ProductAndServicesComponent_mat_card_13_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
-
const _r10 = i0.ɵɵgetCurrentView();
|
|
37
|
-
i0.ɵɵelementStart(0, "div", 23);
|
|
38
|
-
i0.ɵɵelementStart(1, "div", 3);
|
|
39
|
-
i0.ɵɵelementStart(2, "span");
|
|
40
|
-
i0.ɵɵtext(3);
|
|
41
|
-
i0.ɵɵelementEnd();
|
|
42
|
-
i0.ɵɵelementEnd();
|
|
43
|
-
i0.ɵɵelementStart(4, "div", 4);
|
|
44
|
-
i0.ɵɵelementStart(5, "button", 24);
|
|
45
|
-
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return ctx_r9.navigateToSubscription(); });
|
|
46
|
-
i0.ɵɵtext(6, " Subscribe ");
|
|
47
|
-
i0.ɵɵelementEnd();
|
|
48
|
-
i0.ɵɵelementEnd();
|
|
49
|
-
i0.ɵɵelementEnd();
|
|
50
|
-
} if (rf & 2) {
|
|
51
|
-
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
52
|
-
i0.ɵɵadvance(3);
|
|
53
|
-
i0.ɵɵtextInterpolate1(" It looks like you\u2019ve already seen some great results with our Product. This is a great time to consider taking a look at our different plans, so that you can take full advantage of our Product. As your trail is going to expire in ", ctx_r4.noOfDays, " days, please have a look at our different plans and subscribe to them. ");
|
|
54
|
-
} }
|
|
55
|
-
function ProductAndServicesComponent_mat_card_13_div_3_button_15_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
-
const _r14 = i0.ɵɵgetCurrentView();
|
|
57
|
-
i0.ɵɵelementStart(0, "button", 24);
|
|
58
|
-
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_3_button_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return ctx_r13.purchaseMoreLicenses(); });
|
|
59
|
-
i0.ɵɵtext(1, " Purchase more licenses ");
|
|
60
|
-
i0.ɵɵelementEnd();
|
|
61
|
-
} }
|
|
62
|
-
function ProductAndServicesComponent_mat_card_13_div_3_button_16_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
-
const _r16 = i0.ɵɵgetCurrentView();
|
|
64
|
-
i0.ɵɵelementStart(0, "button", 24);
|
|
65
|
-
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_3_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(3); return ctx_r15.navigateToPlans(); });
|
|
66
|
-
i0.ɵɵtext(1, " Change Plan ");
|
|
67
|
-
i0.ɵɵelementEnd();
|
|
68
|
-
} }
|
|
69
|
-
function ProductAndServicesComponent_mat_card_13_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
-
const _r18 = i0.ɵɵgetCurrentView();
|
|
71
|
-
i0.ɵɵelementStart(0, "div", 25);
|
|
72
|
-
i0.ɵɵelementStart(1, "div", 26);
|
|
73
|
-
i0.ɵɵelementStart(2, "label");
|
|
74
|
-
i0.ɵɵelementStart(3, "b");
|
|
75
|
-
i0.ɵɵtext(4);
|
|
76
|
-
i0.ɵɵelementEnd();
|
|
77
|
-
i0.ɵɵelementEnd();
|
|
78
|
-
i0.ɵɵelement(5, "br");
|
|
79
|
-
i0.ɵɵelementStart(6, "span");
|
|
80
|
-
i0.ɵɵtext(7);
|
|
81
|
-
i0.ɵɵelementEnd();
|
|
82
|
-
i0.ɵɵelement(8, "br");
|
|
83
|
-
i0.ɵɵelementStart(9, "span");
|
|
84
|
-
i0.ɵɵtext(10);
|
|
85
|
-
i0.ɵɵpipe(11, "date");
|
|
86
|
-
i0.ɵɵelementStart(12, "a", 27);
|
|
87
|
-
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_3_Template_a_click_12_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.cancelSubscription(); });
|
|
88
|
-
i0.ɵɵtext(13, "Cancel subscription");
|
|
89
|
-
i0.ɵɵelementEnd();
|
|
90
|
-
i0.ɵɵelementEnd();
|
|
91
|
-
i0.ɵɵelementEnd();
|
|
92
|
-
i0.ɵɵelementStart(14, "div", 28);
|
|
93
|
-
i0.ɵɵtemplate(15, ProductAndServicesComponent_mat_card_13_div_3_button_15_Template, 2, 0, "button", 29);
|
|
94
|
-
i0.ɵɵtemplate(16, ProductAndServicesComponent_mat_card_13_div_3_button_16_Template, 2, 0, "button", 29);
|
|
95
|
-
i0.ɵɵelementEnd();
|
|
96
|
-
i0.ɵɵelementEnd();
|
|
97
|
-
} if (rf & 2) {
|
|
98
|
-
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
99
|
-
i0.ɵɵadvance(4);
|
|
100
|
-
i0.ɵɵtextInterpolate(ctx_r5.productName);
|
|
101
|
-
i0.ɵɵadvance(3);
|
|
102
|
-
i0.ɵɵtextInterpolate2("", ctx_r5.totalNoOfActiveUsers, " of ", ctx_r5.totalNoOfPurchases, " Users assigned");
|
|
103
|
-
i0.ɵɵadvance(3);
|
|
104
|
-
i0.ɵɵtextInterpolate1("Automatically renews on ", i0.ɵɵpipeBind1(11, 6, ctx_r5.renewalDate), ". ");
|
|
105
|
-
i0.ɵɵadvance(5);
|
|
106
|
-
i0.ɵɵproperty("ngIf", !ctx_r5.isCancelled);
|
|
107
|
-
i0.ɵɵadvance(1);
|
|
108
|
-
i0.ɵɵproperty("ngIf", !ctx_r5.isCancelled);
|
|
109
|
-
} }
|
|
110
|
-
function ProductAndServicesComponent_mat_card_13_div_4_tr_8_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
-
i0.ɵɵelementStart(0, "tr", 32);
|
|
112
|
-
i0.ɵɵelementStart(1, "td", 35);
|
|
113
|
-
i0.ɵɵelementStart(2, "span");
|
|
114
|
-
i0.ɵɵtext(3);
|
|
115
|
-
i0.ɵɵelement(4, "br");
|
|
116
|
-
i0.ɵɵtext(5);
|
|
117
|
-
i0.ɵɵelementEnd();
|
|
118
|
-
i0.ɵɵelementEnd();
|
|
119
|
-
i0.ɵɵelementStart(6, "td", 36);
|
|
120
|
-
i0.ɵɵtext(7);
|
|
121
|
-
i0.ɵɵelementEnd();
|
|
122
|
-
i0.ɵɵelementEnd();
|
|
123
|
-
} if (rf & 2) {
|
|
124
|
-
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
125
|
-
i0.ɵɵadvance(3);
|
|
126
|
-
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " (", history_r19.noofpurchasedlicences, " Users Included)");
|
|
127
|
-
i0.ɵɵadvance(2);
|
|
128
|
-
i0.ɵɵtextInterpolate1(" Billed every ", history_r19.subscriptionType, " ");
|
|
129
|
-
i0.ɵɵadvance(2);
|
|
130
|
-
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid, "");
|
|
131
|
-
} }
|
|
132
|
-
function ProductAndServicesComponent_mat_card_13_div_4_tr_9_Template(rf, ctx) { if (rf & 1) {
|
|
133
|
-
i0.ɵɵelementStart(0, "tr", 32);
|
|
134
|
-
i0.ɵɵelementStart(1, "td", 35);
|
|
135
|
-
i0.ɵɵelementStart(2, "span");
|
|
136
|
-
i0.ɵɵtext(3);
|
|
137
|
-
i0.ɵɵelementEnd();
|
|
138
|
-
i0.ɵɵelementEnd();
|
|
139
|
-
i0.ɵɵelementStart(4, "td", 36);
|
|
140
|
-
i0.ɵɵtext(5);
|
|
141
|
-
i0.ɵɵelementEnd();
|
|
142
|
-
i0.ɵɵelementEnd();
|
|
143
|
-
} if (rf & 2) {
|
|
144
|
-
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
145
|
-
i0.ɵɵadvance(3);
|
|
146
|
-
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " (", history_r19.originalPurchases, " Users Included) ");
|
|
147
|
-
i0.ɵɵadvance(2);
|
|
148
|
-
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid / history_r19.noofpurchasedlicences * history_r19.originalPurchases, "");
|
|
149
|
-
} }
|
|
150
|
-
function ProductAndServicesComponent_mat_card_13_div_4_tr_10_Template(rf, ctx) { if (rf & 1) {
|
|
151
|
-
i0.ɵɵelementStart(0, "tr", 32);
|
|
152
|
-
i0.ɵɵelementStart(1, "td", 35);
|
|
153
|
-
i0.ɵɵelementStart(2, "span");
|
|
154
|
-
i0.ɵɵtext(3);
|
|
155
|
-
i0.ɵɵelementEnd();
|
|
156
|
-
i0.ɵɵelementEnd();
|
|
157
|
-
i0.ɵɵelementStart(4, "td", 36);
|
|
158
|
-
i0.ɵɵtext(5);
|
|
159
|
-
i0.ɵɵelementEnd();
|
|
160
|
-
i0.ɵɵelementEnd();
|
|
161
|
-
} if (rf & 2) {
|
|
162
|
-
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
163
|
-
i0.ɵɵadvance(3);
|
|
164
|
-
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " Additional Users (", history_r19.noofpurchasedlicences - history_r19.originalPurchases, " Users)");
|
|
165
|
-
i0.ɵɵadvance(2);
|
|
166
|
-
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid / history_r19.noofpurchasedlicences * (history_r19.noofpurchasedlicences - history_r19.originalPurchases), " ");
|
|
167
|
-
} }
|
|
168
|
-
function ProductAndServicesComponent_mat_card_13_div_4_tr_11_Template(rf, ctx) { if (rf & 1) {
|
|
169
|
-
i0.ɵɵelementStart(0, "tr", 32);
|
|
170
|
-
i0.ɵɵelementStart(1, "td", 35);
|
|
171
|
-
i0.ɵɵtext(2);
|
|
172
|
-
i0.ɵɵelement(3, "br");
|
|
173
|
-
i0.ɵɵelementStart(4, "span", 37);
|
|
174
|
-
i0.ɵɵtext(5);
|
|
175
|
-
i0.ɵɵelementEnd();
|
|
176
|
-
i0.ɵɵelementEnd();
|
|
177
|
-
i0.ɵɵelementStart(6, "td", 36);
|
|
178
|
-
i0.ɵɵtext(7);
|
|
179
|
-
i0.ɵɵelementEnd();
|
|
180
|
-
i0.ɵɵelementEnd();
|
|
181
|
-
} if (rf & 2) {
|
|
182
|
-
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
183
|
-
i0.ɵɵadvance(2);
|
|
184
|
-
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " Total (", history_r19.noofpurchasedlicences, " Users)");
|
|
185
|
-
i0.ɵɵadvance(3);
|
|
186
|
-
i0.ɵɵtextInterpolate1(" Billed every ", history_r19.subscriptionType, "");
|
|
187
|
-
i0.ɵɵadvance(2);
|
|
188
|
-
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid, "");
|
|
189
|
-
} }
|
|
190
|
-
function ProductAndServicesComponent_mat_card_13_div_4_tr_12_Template(rf, ctx) { if (rf & 1) {
|
|
191
|
-
i0.ɵɵelementStart(0, "tr");
|
|
192
|
-
i0.ɵɵelementStart(1, "span");
|
|
193
|
-
i0.ɵɵtext(2);
|
|
194
|
-
i0.ɵɵpipe(3, "date");
|
|
195
|
-
i0.ɵɵelementEnd();
|
|
196
|
-
i0.ɵɵelementEnd();
|
|
197
|
-
} if (rf & 2) {
|
|
198
|
-
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
199
|
-
i0.ɵɵadvance(2);
|
|
200
|
-
i0.ɵɵtextInterpolate1("Subscription was cancelled at ", i0.ɵɵpipeBind1(3, 1, history_r19.cancelledDate), "");
|
|
201
|
-
} }
|
|
202
|
-
function ProductAndServicesComponent_mat_card_13_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
203
|
-
i0.ɵɵelementStart(0, "div", 23);
|
|
204
|
-
i0.ɵɵelementStart(1, "div", 30);
|
|
205
|
-
i0.ɵɵelementStart(2, "table", 31);
|
|
206
|
-
i0.ɵɵelementStart(3, "tr", 32);
|
|
207
|
-
i0.ɵɵelementStart(4, "span", 33);
|
|
208
|
-
i0.ɵɵtext(5);
|
|
209
|
-
i0.ɵɵpipe(6, "date");
|
|
210
|
-
i0.ɵɵpipe(7, "date");
|
|
211
|
-
i0.ɵɵelementEnd();
|
|
212
|
-
i0.ɵɵelementEnd();
|
|
213
|
-
i0.ɵɵtemplate(8, ProductAndServicesComponent_mat_card_13_div_4_tr_8_Template, 8, 4, "tr", 34);
|
|
214
|
-
i0.ɵɵtemplate(9, ProductAndServicesComponent_mat_card_13_div_4_tr_9_Template, 6, 3, "tr", 34);
|
|
215
|
-
i0.ɵɵtemplate(10, ProductAndServicesComponent_mat_card_13_div_4_tr_10_Template, 6, 3, "tr", 34);
|
|
216
|
-
i0.ɵɵtemplate(11, ProductAndServicesComponent_mat_card_13_div_4_tr_11_Template, 8, 4, "tr", 34);
|
|
217
|
-
i0.ɵɵtemplate(12, ProductAndServicesComponent_mat_card_13_div_4_tr_12_Template, 4, 3, "tr", 7);
|
|
218
|
-
i0.ɵɵelementEnd();
|
|
219
|
-
i0.ɵɵelementEnd();
|
|
220
|
-
i0.ɵɵelementEnd();
|
|
221
|
-
} if (rf & 2) {
|
|
222
|
-
const history_r19 = ctx.$implicit;
|
|
223
|
-
i0.ɵɵadvance(5);
|
|
224
|
-
i0.ɵɵtextInterpolate2("Subscription term : ", i0.ɵɵpipeBind1(6, 7, history_r19.startTime), " to ", i0.ɵɵpipeBind1(7, 9, history_r19.endTime), "");
|
|
225
|
-
i0.ɵɵadvance(3);
|
|
226
|
-
i0.ɵɵproperty("ngIf", !history_r19.isUpdate);
|
|
227
|
-
i0.ɵɵadvance(1);
|
|
228
|
-
i0.ɵɵproperty("ngIf", history_r19.isUpdate);
|
|
229
|
-
i0.ɵɵadvance(1);
|
|
230
|
-
i0.ɵɵproperty("ngIf", history_r19.isUpdate);
|
|
231
|
-
i0.ɵɵadvance(1);
|
|
232
|
-
i0.ɵɵproperty("ngIf", history_r19.isUpdate);
|
|
233
|
-
i0.ɵɵadvance(1);
|
|
234
|
-
i0.ɵɵproperty("ngIf", history_r19.isCancelled);
|
|
235
|
-
} }
|
|
236
|
-
function ProductAndServicesComponent_mat_card_13_Template(rf, ctx) { if (rf & 1) {
|
|
237
|
-
i0.ɵɵelementStart(0, "mat-card");
|
|
238
|
-
i0.ɵɵtemplate(1, ProductAndServicesComponent_mat_card_13_div_1_Template, 7, 0, "div", 19);
|
|
239
|
-
i0.ɵɵtemplate(2, ProductAndServicesComponent_mat_card_13_div_2_Template, 7, 1, "div", 20);
|
|
240
|
-
i0.ɵɵtemplate(3, ProductAndServicesComponent_mat_card_13_div_3_Template, 17, 8, "div", 21);
|
|
241
|
-
i0.ɵɵtemplate(4, ProductAndServicesComponent_mat_card_13_div_4_Template, 13, 11, "div", 22);
|
|
242
|
-
i0.ɵɵelementEnd();
|
|
243
|
-
} if (rf & 2) {
|
|
244
|
-
const ctx_r1 = i0.ɵɵnextContext();
|
|
245
|
-
i0.ɵɵadvance(1);
|
|
246
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isCancelled);
|
|
247
|
-
i0.ɵɵadvance(1);
|
|
248
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isTrailValid);
|
|
249
|
-
i0.ɵɵadvance(1);
|
|
250
|
-
i0.ɵɵproperty("ngIf", ctx_r1.isTrailValid == false && !ctx_r1.isCancelled);
|
|
251
|
-
i0.ɵɵadvance(1);
|
|
252
|
-
i0.ɵɵproperty("ngForOf", ctx_r1.paymentHistory);
|
|
253
|
-
} }
|
|
254
|
-
export class ProductAndServicesComponent {
|
|
255
|
-
constructor(data, toastr, paymentService, router, cookieService, dialog) {
|
|
256
|
-
this.data = data;
|
|
257
|
-
this.toastr = toastr;
|
|
258
|
-
this.paymentService = paymentService;
|
|
259
|
-
this.router = router;
|
|
260
|
-
this.cookieService = cookieService;
|
|
261
|
-
this.dialog = dialog;
|
|
262
|
-
this.isSubscriptionCancel = false;
|
|
263
|
-
this.isAnyOperationIsInprogress = false;
|
|
264
|
-
this.isFromRoute = false;
|
|
265
|
-
this.totalNoOfActiveUsers = 0;
|
|
266
|
-
this.totalNoOfPurchases = 0;
|
|
267
|
-
this.isShowRenewal = false;
|
|
268
|
-
this.productName = "Snovasys";
|
|
269
|
-
this.isTrailValid = true;
|
|
270
|
-
this.noOfDays = 0;
|
|
271
|
-
this.isLoading = true;
|
|
272
|
-
}
|
|
273
|
-
ngOnInit() {
|
|
274
|
-
if (this.cookieService.check(LocalStorageProperties.CompanyDetails) && this.cookieService.check(LocalStorageProperties.CompanyId)) {
|
|
275
|
-
this.company = JSON.parse(this.cookieService.get(LocalStorageProperties.CompanyDetails));
|
|
276
|
-
this.noOfDays = this.company != null && this.company != undefined ? this.company.trailDays : 0;
|
|
277
|
-
}
|
|
278
|
-
this.getActiveUsersCount();
|
|
279
|
-
this.getPurchasedLicensesCount();
|
|
280
|
-
this.getPaymentHistory();
|
|
281
|
-
}
|
|
282
|
-
cancelSubscription() {
|
|
283
|
-
this.paymentService.cancelSubscription().subscribe((responseData) => {
|
|
284
|
-
if (responseData.success == true) {
|
|
285
|
-
this.toastr.success("Your subscription has been cancelled successfully");
|
|
286
|
-
this.isSubscriptionCancel = true;
|
|
287
|
-
setTimeout(() => {
|
|
288
|
-
this.getPurchasedLicensesCount();
|
|
289
|
-
this.getPaymentHistory();
|
|
290
|
-
}, 2000);
|
|
291
|
-
}
|
|
292
|
-
else {
|
|
293
|
-
this.toastr.error(responseData.apiResponseMessages[0].message);
|
|
294
|
-
this.isSubscriptionCancel = false;
|
|
295
|
-
}
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
getActiveUsersCount() {
|
|
299
|
-
this.paymentService.getActiveUsersCount().subscribe((responseData) => {
|
|
300
|
-
if (responseData.success == true) {
|
|
301
|
-
this.totalNoOfActiveUsers = responseData.data;
|
|
302
|
-
}
|
|
303
|
-
});
|
|
304
|
-
}
|
|
305
|
-
getPurchasedLicensesCount() {
|
|
306
|
-
this.isLoading = true;
|
|
307
|
-
this.paymentService.getPurchasedLicensesCount().subscribe((responseData) => {
|
|
308
|
-
if (responseData.success == true) {
|
|
309
|
-
if (responseData.data) {
|
|
310
|
-
this.totalNoOfPurchases = responseData.data.purchasedLicensesCount;
|
|
311
|
-
this.isShowRenewal = responseData.data.isShowRenewal;
|
|
312
|
-
this.productName = responseData.data.purchaseType;
|
|
313
|
-
this.isTrailValid = false;
|
|
314
|
-
this.renewalDate = responseData.data.renewalDate;
|
|
315
|
-
this.isCancelled = responseData.data.isCancelled;
|
|
316
|
-
this.subscriptionType = responseData.data.subscriptionType;
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
this.isTrailValid = true;
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
this.isLoading = false;
|
|
323
|
-
});
|
|
324
|
-
}
|
|
325
|
-
navigateToSubscription() {
|
|
326
|
-
this.router.navigate(["/shell/payments-plans"]);
|
|
327
|
-
}
|
|
328
|
-
purchaseMoreLicenses() {
|
|
329
|
-
const dialogRef = this.dialog.open(PurchaseMoreLicensesComponent, {
|
|
330
|
-
height: "45%",
|
|
331
|
-
width: "28%",
|
|
332
|
-
hasBackdrop: true,
|
|
333
|
-
direction: "ltr",
|
|
334
|
-
data: { noOfPurchases: this.totalNoOfPurchases, productName: this.productName, subscriptionType: this.subscriptionType },
|
|
335
|
-
disableClose: true
|
|
336
|
-
});
|
|
337
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
338
|
-
if (result != undefined && result.isReload == true) {
|
|
339
|
-
this.getPaymentHistory();
|
|
340
|
-
this.getPurchasedLicensesCount();
|
|
341
|
-
}
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
navigateToPlans() {
|
|
345
|
-
this.router.navigate(["/shell/payments-plans"]);
|
|
346
|
-
}
|
|
347
|
-
getPaymentHistory() {
|
|
348
|
-
this.paymentService.getPaymentHistory().subscribe((responseData) => {
|
|
349
|
-
if (responseData.success == true) {
|
|
350
|
-
this.paymentHistory = responseData.data;
|
|
351
|
-
}
|
|
352
|
-
else {
|
|
353
|
-
this.toastr.error(responseData.apiResponseMessages[0].message);
|
|
354
|
-
}
|
|
355
|
-
});
|
|
356
|
-
}
|
|
357
|
-
openpop(closeBookingPopup) {
|
|
358
|
-
closeBookingPopup.openPopover();
|
|
359
|
-
}
|
|
360
|
-
close() {
|
|
361
|
-
this.closeBookingPopup.forEach((p) => p.closePopover());
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
ProductAndServicesComponent.ɵfac = function ProductAndServicesComponent_Factory(t) { return new (t || ProductAndServicesComponent)(i0.ɵɵdirectiveInject(MAT_DIALOG_DATA), i0.ɵɵdirectiveInject(i1.ToastrService), i0.ɵɵdirectiveInject(i2.PaymentService), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i4.CookieService), i0.ɵɵdirectiveInject(i5.MatDialog)); };
|
|
365
|
-
ProductAndServicesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProductAndServicesComponent, selectors: [["app-product-services-component"]], viewQuery: function ProductAndServicesComponent_Query(rf, ctx) { if (rf & 1) {
|
|
366
|
-
i0.ɵɵviewQuery(_c0, 5);
|
|
367
|
-
} if (rf & 2) {
|
|
368
|
-
let _t;
|
|
369
|
-
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.closeBookingPopup = _t);
|
|
370
|
-
} }, decls: 27, vars: 5, consts: [["fxFlex", "", "fxFlex", "100"], [1, "ml-1", "mt-05"], ["fxLayout", "row", 2, "height", "fit-content", "border", "1px solid #eceaea", "margin", "0", "padding", "0px 10px 0px 10px", "background", "aliceblue"], ["fxFlex", "80", 2, "padding-top", "15px !important"], ["fxFlex", "20", 2, "text-align", "right"], ["mat-raised-button", "", "color", "primary", "type", "submit", 1, "ml-05", "mt-05", "mb-05", 3, "satPopoverAnchorFor", "click"], ["closeBookingPopup", "satPopoverAnchor"], [4, "ngIf"], ["hasBackdrop", "", "backdropClass", "backdrop-color", "scrollStrategy", "reposition", "verticalAlign", "below", "horizontalAlign", "before", 3, "autoFocus", "restoreFocus", "interactiveClose"], ["feedTimeSheet", ""], [1, "filter-data", "p-0", 2, "min-height", "150px"], [1, "custom-dialog"], ["mat-dialog-close", "", 1, "custom-close", "ml-lg-n4", "mt-0", "mt-lg-n4", "ml-n3", 3, "click"], ["icon", "times", 1, "project-dialog"], [1, "text-center"], [1, "card-title-text", "mat-bg-primary", "p-05", "mb-1"], [1, "mt-05"], [1, "card-content"], ["fxFlex", "100", 1, "mt-2", 2, "text-align", "center"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 0px 10px 0px 10px;", "fxLayout", "row", 4, "ngIf"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 0px 10px 0px 10px; ", "fxLayout", "row", 4, "ngIf"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 15px;", "fxLayout", "row", 4, "ngIf"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 0px 10px 0px 10px;", "fxLayout", "row", 4, "ngFor", "ngForOf"], ["fxLayout", "row", 2, "height", "fit-content", "border", "1px solid #eceaea", "margin", "0", "padding", "0px 10px 0px 10px"], ["mat-raised-button", "", "color", "primary", "type", "submit", 1, "ml-05", "mt-05", 3, "click"], ["fxLayout", "row", 2, "height", "fit-content", "border", "1px solid #eceaea", "margin", "0", "padding", "15px"], ["fxFlex", "70"], [2, "cursor", "pointer", "color", "#337ab7 !important", "text-decoration", "none !important", 3, "click"], ["fxFlex", "30", 2, "text-align", "right"], ["mat-raised-button", "", "color", "primary", "type", "submit", "class", "ml-05 mt-05", 3, "click", 4, "ngIf"], ["fxFlex", "70", 2, "padding-top", "15px !important"], [2, "width", "100%"], ["fxLayout", "row"], [2, "font-weight", "bold"], ["fxLayout", "row", 4, "ngIf"], ["fxFlex", "80"], ["fxFlex", "20"], [2, "font-size", "14px"]], template: function ProductAndServicesComponent_Template(rf, ctx) { if (rf & 1) {
|
|
371
|
-
const _r30 = i0.ɵɵgetCurrentView();
|
|
372
|
-
i0.ɵɵelementStart(0, "div", 0);
|
|
373
|
-
i0.ɵɵelementStart(1, "h4", 1);
|
|
374
|
-
i0.ɵɵtext(2, "Products & Services");
|
|
375
|
-
i0.ɵɵelementEnd();
|
|
376
|
-
i0.ɵɵelement(3, "hr");
|
|
377
|
-
i0.ɵɵelementEnd();
|
|
378
|
-
i0.ɵɵelementStart(4, "mat-card");
|
|
379
|
-
i0.ɵɵelementStart(5, "div", 2);
|
|
380
|
-
i0.ɵɵelementStart(6, "div", 3);
|
|
381
|
-
i0.ɵɵelementStart(7, "span");
|
|
382
|
-
i0.ɵɵtext(8, " Customize and enhance your plan with additional features. ");
|
|
383
|
-
i0.ɵɵelementEnd();
|
|
384
|
-
i0.ɵɵelementEnd();
|
|
385
|
-
i0.ɵɵelementStart(9, "div", 4);
|
|
386
|
-
i0.ɵɵelementStart(10, "button", 5, 6);
|
|
387
|
-
i0.ɵɵlistener("click", function ProductAndServicesComponent_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r30); const _r0 = i0.ɵɵreference(11); return ctx.openpop(_r0); });
|
|
388
|
-
i0.ɵɵtext(12, " Customize ");
|
|
389
|
-
i0.ɵɵelementEnd();
|
|
390
|
-
i0.ɵɵelementEnd();
|
|
391
|
-
i0.ɵɵelementEnd();
|
|
392
|
-
i0.ɵɵelementEnd();
|
|
393
|
-
i0.ɵɵtemplate(13, ProductAndServicesComponent_mat_card_13_Template, 5, 4, "mat-card", 7);
|
|
394
|
-
i0.ɵɵelementStart(14, "sat-popover", 8, 9);
|
|
395
|
-
i0.ɵɵelementStart(16, "mat-card", 10);
|
|
396
|
-
i0.ɵɵelementStart(17, "div", 11);
|
|
397
|
-
i0.ɵɵelementStart(18, "div", 12);
|
|
398
|
-
i0.ɵɵlistener("click", function ProductAndServicesComponent_Template_div_click_18_listener() { return ctx.close(); });
|
|
399
|
-
i0.ɵɵelement(19, "fa-icon", 13);
|
|
400
|
-
i0.ɵɵelementEnd();
|
|
401
|
-
i0.ɵɵelementEnd();
|
|
402
|
-
i0.ɵɵelementStart(20, "mat-card-title", 14);
|
|
403
|
-
i0.ɵɵelementStart(21, "div", 15);
|
|
404
|
-
i0.ɵɵelementStart(22, "h4", 16);
|
|
405
|
-
i0.ɵɵtext(23, " Customize site");
|
|
406
|
-
i0.ɵɵelementEnd();
|
|
407
|
-
i0.ɵɵelementEnd();
|
|
408
|
-
i0.ɵɵelementEnd();
|
|
409
|
-
i0.ɵɵelementStart(24, "mat-card-content", 17);
|
|
410
|
-
i0.ɵɵelementStart(25, "div", 18);
|
|
411
|
-
i0.ɵɵtext(26, " If there is need to customize the site, then please call 0044-7944144944. ");
|
|
412
|
-
i0.ɵɵelementEnd();
|
|
413
|
-
i0.ɵɵelementEnd();
|
|
414
|
-
i0.ɵɵelementEnd();
|
|
415
|
-
i0.ɵɵelementEnd();
|
|
416
|
-
} if (rf & 2) {
|
|
417
|
-
const _r2 = i0.ɵɵreference(15);
|
|
418
|
-
i0.ɵɵadvance(10);
|
|
419
|
-
i0.ɵɵproperty("satPopoverAnchorFor", _r2);
|
|
420
|
-
i0.ɵɵadvance(3);
|
|
421
|
-
i0.ɵɵproperty("ngIf", !ctx.isLoading);
|
|
422
|
-
i0.ɵɵadvance(1);
|
|
423
|
-
i0.ɵɵproperty("autoFocus", false)("restoreFocus", false)("interactiveClose", false);
|
|
424
|
-
} }, directives: [i6.DefaultFlexDirective, i7.MatCard, i6.DefaultLayoutDirective, i8.MatButton, i9.SatPopoverAnchor, i10.NgIf, i9.SatPopover, i5.MatDialogClose, i11.FaIconComponent, i7.MatCardTitle, i7.MatCardContent, i10.NgForOf], pipes: [i10.DatePipe], encapsulation: 2 });
|
|
425
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProductAndServicesComponent, [{
|
|
426
|
-
type: Component,
|
|
427
|
-
args: [{
|
|
428
|
-
selector: "app-product-services-component",
|
|
429
|
-
templateUrl: "./product-service.component.html"
|
|
430
|
-
}]
|
|
431
|
-
}], function () { return [{ type: undefined, decorators: [{
|
|
432
|
-
type: Inject,
|
|
433
|
-
args: [MAT_DIALOG_DATA]
|
|
434
|
-
}] }, { type: i1.ToastrService }, { type: i2.PaymentService }, { type: i3.Router }, { type: i4.CookieService }, { type: i5.MatDialog }]; }, { closeBookingPopup: [{
|
|
435
|
-
type: ViewChildren,
|
|
436
|
-
args: ["closeBookingPopup"]
|
|
437
|
-
}] }); })();
|
|
438
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvUGF5bWVudHMvcHJvZHVjdC1zZXJ2aWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvUGF5bWVudHMvcHJvZHVjdC1zZXJ2aWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTXBGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3ZHLE9BQU8sdURBQXVELENBQUM7QUFFL0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNZckUsK0JBQ3dCO0lBQ3BCLDhCQUF1RDtJQUNuRCw0QkFBTTtJQUFDLG9TQUdQO0lBQUEsaUJBQU87SUFDWCxpQkFBTTtJQUNOLDhCQUE0QztJQUN4QyxrQ0FDdUM7SUFBbkMsd05BQWtDO0lBQ2xDLDJCQUNKO0lBQUEsaUJBQVM7SUFDYixpQkFBTTtJQUNWLGlCQUFNOzs7O0lBQ04sK0JBQ3lCO0lBQ3JCLDhCQUF1RDtJQUNuRCw0QkFBTTtJQUFDLFlBSVA7SUFBQSxpQkFBTztJQUNYLGlCQUFNO0lBQ04sOEJBQTRDO0lBQ3hDLGtDQUN1QztJQUFuQyx5TkFBa0M7SUFDbEMsMkJBQ0o7SUFBQSxpQkFBUztJ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LDJCQUFBOzt1RkRyR2xDLDJCQUEyQjtjQUx2QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztnQkFDMUMsV0FBVyxFQUFFLGtDQUFrQzthQUNoRDs7c0JBd0JjLE1BQU07dUJBQUMsZUFBZTswSkFEQSxpQkFBaUI7a0JBQW5ELFlBQVk7bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJzXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvY29uc3RhbnRzL2xvY2Fsc3RvcmFnZS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0ICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvaGVscGVycy9mb250YXdlc29tZS1pY29ucyc7XHJcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHVyY2hhc2VNb3JlTGljZW5zZXNDb21wb25lbnQgfSBmcm9tICcuL3B1cmNoYXNlLW1vcmUtbGljZW5zZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLXByb2R1Y3Qtc2VydmljZXMtY29tcG9uZW50XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9wcm9kdWN0LXNlcnZpY2UuY29tcG9uZW50Lmh0bWxcIlxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb2R1Y3RBbmRTZXJ2aWNlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG5cclxuICBzZWxlY3RlZFRhYjogc3RyaW5nO1xyXG4gIHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjtcclxuICBwYXltZW50RGV0YWlsczogYW55O1xyXG4gIGlzU3Vic2NyaXB0aW9uQ2FuY2VsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNBbnlPcGVyYXRpb25Jc0lucHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0Zyb21Sb3V0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRvdGFsTm9PZkFjdGl2ZVVzZXJzOiBhbnkgPSAwO1xyXG4gIHRvdGFsTm9PZlB1cmNoYXNlczogYW55ID0gMDtcclxuICBpc1Nob3dSZW5ld2FsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJvZHVjdE5hbWU6IHN0cmluZyA9IFwiU25vdmFzeXNcIjtcclxuICBpc1RyYWlsVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIG5vT2ZEYXlzOiBhbnkgPSAwO1xyXG4gIGNvbXBhbnk6IGFueTtcclxuICByZW5ld2FsRGF0ZTogYW55O1xyXG4gIGlzQ2FuY2VsbGVkOiBib29sZWFuO1xyXG4gIHN1YnNjcmlwdGlvblR5cGU6IGFueTtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHBheW1lbnRIaXN0b3J5IDogYW55O1xyXG4gIEBWaWV3Q2hpbGRyZW4oXCJjbG9zZUJvb2tpbmdQb3B1cFwiKSBjbG9zZUJvb2tpbmdQb3B1cDtcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcclxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlXHJcbiAgICAsIHByaXZhdGUgcGF5bWVudFNlcnZpY2U6IFBheW1lbnRTZXJ2aWNlXHJcbiAgICAsIHB1YmxpYyByb3V0ZXI6IFJvdXRlclxyXG4gICAgLCBwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5jb29raWVTZXJ2aWNlLmNoZWNrKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ29tcGFueURldGFpbHMpICYmIHRoaXMuY29va2llU2VydmljZS5jaGVjayhMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkNvbXBhbnlJZCkpIHtcclxuICAgICAgdGhpcy5jb21wYW55ID0gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ29tcGFueURldGFpbHMpKTtcclxuICAgICAgdGhpcy5ub09mRGF5cyA9IHRoaXMuY29tcGFueSAhPSBudWxsICYmIHRoaXMuY29tcGFueSAhPSB1bmRlZmluZWQgPyB0aGlzLmNvbXBhbnkudHJhaWxEYXlzIDogMDtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0QWN0aXZlVXNlcnNDb3VudCgpO1xyXG4gICAgdGhpcy5nZXRQdXJjaGFzZWRMaWNlbnNlc0NvdW50KCk7XHJcbiAgICB0aGlzLmdldFBheW1lbnRIaXN0b3J5KCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxTdWJzY3JpcHRpb24oKSB7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmNhbmNlbFN1YnNjcmlwdGlvbigpLnN1YnNjcmliZSgocmVzcG9uc2VEYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlRGF0YS5zdWNjZXNzID09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKFwiWW91ciBzdWJzY3JpcHRpb24gaGFzIGJlZW4gY2FuY2VsbGVkIHN1Y2Nlc3NmdWxseVwiKTtcclxuICAgICAgICB0aGlzLmlzU3Vic2NyaXB0aW9uQ2FuY2VsID0gdHJ1ZTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpPT57XHJcbiAgICAgICAgICB0aGlzLmdldFB1cmNoYXNlZExpY2Vuc2VzQ291bnQoKTtcclxuICAgICAgICAgIHRoaXMuZ2V0UGF5bWVudEhpc3RvcnkoKTtcclxuICAgICB9LCAyMDAwKTtcclxuICAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKHJlc3BvbnNlRGF0YS5hcGlSZXNwb25zZU1lc3NhZ2VzWzBdLm1lc3NhZ2UpO1xyXG4gICAgICAgIHRoaXMuaXNTdWJzY3JpcHRpb25DYW5jZWwgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEFjdGl2ZVVzZXJzQ291bnQoKSB7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldEFjdGl2ZVVzZXJzQ291bnQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlRGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZURhdGEuc3VjY2VzcyA9PSB0cnVlKSB7XHJcbiAgICAgICAgdGhpcy50b3RhbE5vT2ZBY3RpdmVVc2VycyA9IHJlc3BvbnNlRGF0YS5kYXRhO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFB1cmNoYXNlZExpY2Vuc2VzQ291bnQoKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFB1cmNoYXNlZExpY2Vuc2VzQ291bnQoKS5zdWJzY3JpYmUoKHJlc3BvbnNlRGF0YTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZURhdGEuc3VjY2VzcyA9PSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKHJlc3BvbnNlRGF0YS5kYXRhKSB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsTm9PZlB1cmNoYXNlcyA9IHJlc3BvbnNlRGF0YS5kYXRhLnB1cmNoYXNlZExpY2Vuc2VzQ291bnQ7XHJcbiAgICAgICAgICB0aGlzLmlzU2hvd1JlbmV3YWwgPSByZXNwb25zZURhdGEuZGF0YS5pc1Nob3dSZW5ld2FsO1xyXG4gICAgICAgICAgdGhpcy5wcm9kdWN0TmFtZSA9IHJlc3BvbnNlRGF0YS5kYXRhLnB1cmNoYXNlVHlwZTtcclxuICAgICAgICAgIHRoaXMuaXNUcmFpbFZhbGlkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnJlbmV3YWxEYXRlID0gcmVzcG9uc2VEYXRhLmRhdGEucmVuZXdhbERhdGU7XHJcbiAgICAgICAgICB0aGlzLmlzQ2FuY2VsbGVkID0gcmVzcG9uc2VEYXRhLmRhdGEuaXNDYW5jZWxsZWQ7XHJcbiAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvblR5cGUgPSByZXNwb25zZURhdGEuZGF0YS5zdWJzY3JpcHRpb25UeXBlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuaXNUcmFpbFZhbGlkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGVUb1N1YnNjcmlwdGlvbigpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9zaGVsbC9wYXltZW50cy1wbGFuc1wiXSk7XHJcbiAgfVxyXG5cclxuICBwdXJjaGFzZU1vcmVMaWNlbnNlcygpIHtcclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUHVyY2hhc2VNb3JlTGljZW5zZXNDb21wb25lbnQsIHtcclxuICAgICAgaGVpZ2h0OiBcIjQ1JVwiLFxyXG4gICAgICB3aWR0aDogXCIyOCVcIixcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIGRpcmVjdGlvbjogXCJsdHJcIixcclxuICAgICAgZGF0YTogeyBub09mUHVyY2hhc2VzOiB0aGlzLnRvdGFsTm9PZlB1cmNoYXNlcywgcHJvZHVjdE5hbWU6IHRoaXMucHJvZHVjdE5hbWUsIHN1YnNjcmlwdGlvblR5cGU6IHRoaXMuc3Vic2NyaXB0aW9uVHlwZSB9LFxyXG4gICAgICBkaXNhYmxlQ2xvc2U6IHRydWVcclxuICAgIH0pO1xyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgaWYocmVzdWx0ICE9dW5kZWZpbmVkICYmIHJlc3VsdC5pc1JlbG9hZCA9PSB0cnVlKXtcclxuICAgICAgICB0aGlzLmdldFBheW1lbnRIaXN0b3J5KCk7XHJcbiAgICAgICAgdGhpcy5nZXRQdXJjaGFzZWRMaWNlbnNlc0NvdW50KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICBuYXZpZ2F0ZVRvUGxhbnMoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvc2hlbGwvcGF5bWVudHMtcGxhbnNcIl0pO1xyXG4gIH1cclxuICBnZXRQYXltZW50SGlzdG9yeSgpe1xyXG4gICAgdGhpcy5wYXltZW50U2VydmljZS5nZXRQYXltZW50SGlzdG9yeSgpLnN1YnNjcmliZSgocmVzcG9uc2VEYXRhOiBhbnkpID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlRGF0YS5zdWNjZXNzID09IHRydWUpIHtcclxuICAgICAgICB0aGlzLnBheW1lbnRIaXN0b3J5ID0gcmVzcG9uc2VEYXRhLmRhdGFcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZURhdGEuYXBpUmVzcG9uc2VNZXNzYWdlc1swXS5tZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG9wZW5wb3AoY2xvc2VCb29raW5nUG9wdXApIHtcclxuICAgIGNsb3NlQm9va2luZ1BvcHVwLm9wZW5Qb3BvdmVyKCk7XHJcbiAgfVxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5jbG9zZUJvb2tpbmdQb3B1cC5mb3JFYWNoKChwKSA9PiBwLmNsb3NlUG9wb3ZlcigpKTtcclxufVxyXG5cclxufVxyXG4iLCI8ZGl2IGZ4RmxleCBmeEZsZXg9XCIxMDBcIj5cclxuICAgIDxoNCBjbGFzcz1cIm1sLTEgbXQtMDVcIj5Qcm9kdWN0cyAmIFNlcnZpY2VzPC9oND5cclxuICAgIDxocj5cclxuPC9kaXY+XHJcbjxtYXQtY2FyZD5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6Zml0LWNvbnRlbnQ7Ym9yZGVyOiAxcHggc29saWQgI2VjZWFlYTttYXJnaW46IDA7cGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7IGJhY2tncm91bmQ6IGFsaWNlYmx1ZTtcIlxyXG4gICAgICAgIGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCI4MFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHggIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgPHNwYW4+IEN1c3RvbWl6ZSBhbmQgZW5oYW5jZSB5b3VyIHBsYW4gd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCIyMFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtMDUgbXQtMDUgbWItMDVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5wb3AoY2xvc2VCb29raW5nUG9wdXApXCIgW3NhdFBvcG92ZXJBbmNob3JGb3JdPVwiZmVlZFRpbWVTaGVldFwiXHJcbiAgICAgICAgICAgICAgICAjY2xvc2VCb29raW5nUG9wdXA9XCJzYXRQb3BvdmVyQW5jaG9yXCI+XHJcbiAgICAgICAgICAgICAgICBDdXN0b21pemVcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvbWF0LWNhcmQ+XHJcbjxtYXQtY2FyZCAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IGZpdC1jb250ZW50O2JvcmRlcjogMXB4IHNvbGlkICNlY2VhZWE7bWFyZ2luOiAwO3BhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4O1wiIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAqbmdJZj1cImlzQ2FuY2VsbGVkXCI+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCI4MFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHggIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgPHNwYW4+IFdlIGFyZSBzb3JyeSB0byBzZWUgeW91IGdvLiBUaGFuayB5b3UgZm9yIGxldHRpbmcgdXMgdG8gYmUgYSBwYXJ0IG9mIHlvdXIgZ3Jvd3RoIHNvIGZhci4gV2UnbGwgbWlzc1xyXG4gICAgICAgICAgICAgICAgeW91IGFyb3VuZCBoZXJlISBJZiB5b3UgZGVjaWRlIHlvdSdkIGxpa2UgdG8gY29udGludWUgdXNpbmcgdGhpcyBwcm9kdWN0LCB5b3UgY2FuIHJlbmV3IGF0IGFueSB0aW1lIGJ5XHJcbiAgICAgICAgICAgICAgICBjbGlja2luZyBvbiB0aGUgc3Vic2NyaWJlIGJ1dHRvbi4gV2UgaG9wZSB0byBzZWUgeW91IGFyb3VuZCEgVGhhbmsgeW91LlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCIyMFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtMDUgbXQtMDVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9TdWJzY3JpcHRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgU3Vic2NyaWJlXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiBmaXQtY29udGVudDtib3JkZXI6IDFweCBzb2xpZCAjZWNlYWVhO21hcmdpbjogMDtwYWRkaW5nOiAwcHggMTBweCAwcHggMTBweDsgXCIgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICpuZ0lmPVwiaXNUcmFpbFZhbGlkXCI+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCI4MFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHggIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgPHNwYW4+IEl0IGxvb2tzIGxpa2UgeW914oCZdmUgYWxyZWFkeSBzZWVuIHNvbWUgZ3JlYXQgcmVzdWx0cyB3aXRoIG91ciBQcm9kdWN0LiBUaGlzIGlzIGEgZ3JlYXQgdGltZSB0b1xyXG4gICAgICAgICAgICAgICAgY29uc2lkZXIgdGFraW5nIGEgbG9vayBhdCBvdXIgZGlmZmVyZW50IHBsYW5zLCBzbyB0aGF0IHlvdSBjYW4gdGFrZSBmdWxsIGFkdmFudGFnZSBvZiBvdXIgUHJvZHVjdC4gQXNcclxuICAgICAgICAgICAgICAgIHlvdXIgdHJhaWwgaXMgZ29pbmcgdG8gZXhwaXJlIGluIHt7bm9PZkRheXN9fSBkYXlzLCBwbGVhc2UgaGF2ZSBhIGxvb2sgYXQgb3VyIGRpZmZlcmVudCBwbGFucyBhbmRcclxuICAgICAgICAgICAgICAgIHN1YnNjcmliZSB0byB0aGVtLlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCIyMFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtMDUgbXQtMDVcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9TdWJzY3JpcHRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgU3Vic2NyaWJlXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiBmaXQtY29udGVudDtib3JkZXI6IDFweCBzb2xpZCAjZWNlYWVhO21hcmdpbjogMDtwYWRkaW5nOiAxNXB4O1wiIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAqbmdJZj1cImlzVHJhaWxWYWxpZCA9PSBmYWxzZSAmJiAhaXNDYW5jZWxsZWRcIj5cclxuXHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCI3MFwiPlxyXG4gICAgICAgICAgICA8bGFiZWw+PGI+e3twcm9kdWN0TmFtZX19PC9iPjwvbGFiZWw+PGJyPlxyXG4gICAgICAgICAgICA8c3Bhbj57e3RvdGFsTm9PZkFjdGl2ZVVzZXJzfX0gb2Yge3t0b3RhbE5vT2ZQdXJjaGFzZXN9fSBVc2VycyBhc3NpZ25lZDwvc3Bhbj48YnI+XHJcbiAgICAgICAgICAgIDxzcGFuPkF1dG9tYXRpY2FsbHkgcmVuZXdzIG9uIHt7cmVuZXdhbERhdGUgfCBkYXRlfX0uIDxhIChjbGljayk9XCJjYW5jZWxTdWJzY3JpcHRpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7IGNvbG9yOiAjMzM3YWI3ICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyBcIj5DYW5jZWxcclxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb248L2E+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgZnhGbGV4PVwiMzBcIiBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0O1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cIm1sLTA1IG10LTA1XCIgKm5nSWY9XCIhaXNDYW5jZWxsZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInB1cmNoYXNlTW9yZUxpY2Vuc2VzKClcIj5cclxuICAgICAgICAgICAgICAgIFB1cmNoYXNlIG1vcmUgbGljZW5zZXNcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtMDUgbXQtMDVcIiAqbmdJZj1cIiFpc0NhbmNlbGxlZFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BsYW5zKClcIj5cclxuICAgICAgICAgICAgICAgIENoYW5nZSBQbGFuXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogZml0LWNvbnRlbnQ7Ym9yZGVyOiAxcHggc29saWQgI2VjZWFlYTttYXJnaW46IDA7cGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7XCIgZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICpuZ0Zvcj1cImxldCBoaXN0b3J5IG9mIHBheW1lbnRIaXN0b3J5XCI+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCI3MFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHggIWltcG9ydGFudDtcIj5cclxuICAgICAgICAgICAgPHRhYmxlIHN0eWxlPVwid2lkdGg6IDEwMCU7XCI+XHJcbiAgICAgICAgICAgICAgICA8dHIgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPlN1YnNjcmlwdGlvbiB0ZXJtIDoge3toaXN0b3J5LnN0YXJ0VGltZSB8IGRhdGV9fSB0b1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2hpc3RvcnkuZW5kVGltZSB8IGRhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgZnhMYXlvdXQ9XCJyb3dcIiAqbmdJZj1cIiFoaXN0b3J5LmlzVXBkYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIGZ4RmxleD1cIjgwXCI+PHNwYW4+e3toaXN0b3J5LnB1cmNoYXNlVHlwZX19ICh7e2hpc3Rvcnkubm9vZnB1cmNoYXNlZGxpY2VuY2VzfX0gVXNlcnMgSW5jbHVkZWQpPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQmlsbGVkIGV2ZXJ5IHt7aGlzdG9yeS5zdWJzY3JpcHRpb25UeXBlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIGZ4RmxleD1cIjIwXCI+IMKje3toaXN0b3J5LnRvdGFsQW1vdW50UGFpZH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgZnhMYXlvdXQ9XCJyb3dcIiAqbmdJZj1cImhpc3RvcnkuaXNVcGRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgZnhGbGV4PVwiODBcIj48c3Bhbj57e2hpc3RvcnkucHVyY2hhc2VUeXBlfX0gKHt7aGlzdG9yeS5vcmlnaW5hbFB1cmNoYXNlc319IFVzZXJzIEluY2x1ZGVkKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgZnhGbGV4PVwiMjBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgwqN7e2hpc3RvcnkudG90YWxBbW91bnRQYWlkIC8gaGlzdG9yeS5ub29mcHVyY2hhc2VkbGljZW5jZXMgKiBoaXN0b3J5Lm9yaWdpbmFsUHVyY2hhc2VzIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgZnhMYXlvdXQ9XCJyb3dcIiAqbmdJZj1cImhpc3RvcnkuaXNVcGRhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQgZnhGbGV4PVwiODBcIj48c3Bhbj57e2hpc3RvcnkucHVyY2hhc2VUeXBlfX0gQWRkaXRpb25hbCBVc2Vyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHt7aGlzdG9yeS5ub29mcHVyY2hhc2VkbGljZW5jZXMgLSBoaXN0b3J5Lm9yaWdpbmFsUHVyY2hhc2VzfX0gVXNlcnMpPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIGZ4RmxleD1cIjIwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIMKje3toaXN0b3J5LnRvdGFsQW1vdW50UGFpZCAvIGhpc3Rvcnkubm9vZnB1cmNoYXNlZGxpY2VuY2VzICogKCBoaXN0b3J5Lm5vb2ZwdXJjaGFzZWRsaWNlbmNlcyAtIGhpc3Rvcnkub3JpZ2luYWxQdXJjaGFzZXMpfX1cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDx0ciBmeExheW91dD1cInJvd1wiICpuZ0lmPVwiaGlzdG9yeS5pc1VwZGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmeEZsZXg9XCI4MFwiPnt7aGlzdG9yeS5wdXJjaGFzZVR5cGV9fSBUb3RhbCAoe3toaXN0b3J5Lm5vb2ZwdXJjaGFzZWRsaWNlbmNlc319IFVzZXJzKTxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJmb250LXNpemU6IDE0cHg7XCI+IEJpbGxlZCBldmVyeSB7e2hpc3Rvcnkuc3Vic2NyaXB0aW9uVHlwZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkIGZ4RmxleD1cIjIwXCI+IMKje3toaXN0b3J5LnRvdGFsQW1vdW50UGFpZH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJoaXN0b3J5LmlzQ2FuY2VsbGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4+U3Vic2NyaXB0aW9uIHdhcyBjYW5jZWxsZWQgYXQge3toaXN0b3J5LmNhbmNlbGxlZERhdGUgfCBkYXRlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L21hdC1jYXJkPlxyXG48c2F0LXBvcG92ZXIgI2ZlZWRUaW1lU2hlZXQgW2F1dG9Gb2N1c109XCJmYWxzZVwiIGhhc0JhY2tkcm9wIGJhY2tkcm9wQ2xhc3M9XCJiYWNrZHJvcC1jb2xvclwiIFtyZXN0b3JlRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgW2ludGVyYWN0aXZlQ2xvc2VdPVwiZmFsc2VcIiBzY3JvbGxTdHJhdGVneT1cInJlcG9zaXRpb25cIiB2ZXJ0aWNhbEFsaWduPVwiYmVsb3dcIiBob3Jpem9udGFsQWxpZ249XCJiZWZvcmVcIj5cclxuICAgIDxtYXQtY2FyZCBjbGFzcz1cImZpbHRlci1kYXRhIHAtMFwiIHN0eWxlPVwibWluLWhlaWdodDogMTUwcHg7XCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tZGlhbG9nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tY2xvc2UgbWwtbGctbjQgbXQtMCBtdC1sZy1uNCBtbC1uMyBcIiBtYXQtZGlhbG9nLWNsb3NlIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZmEtaWNvbiBpY29uPVwidGltZXNcIiBjbGFzcz1cInByb2plY3QtZGlhbG9nXCI+PC9mYS1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LWNhcmQtdGl0bGUgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZS10ZXh0IG1hdC1iZy1wcmltYXJ5IHAtMDUgbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwibXQtMDVcIj4gQ3VzdG9taXplIHNpdGU8L2g0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImNhcmQtY29udGVudFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjEwMFwiIGNsYXNzPVwibXQtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgSWYgdGhlcmUgaXMgbmVlZCB0byBjdXN0b21pemUgdGhlIHNpdGUsIHRoZW4gcGxlYXNlIGNhbGwgMDA0NC03OTQ0MTQ0OTQ0LlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGZ4RmxleD1cIjEwMFwiIGNsYXNzPVwibXQtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjbGFzcz1cIm1yLTFcIiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJzdWJtaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICBOb1xyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8L21hdC1jYXJkPlxyXG48L3NhdC1wb3BvdmVyPiJdfQ==
|
|
1
|
+
import { Component, Inject, ViewChildren } from "@angular/core";
|
|
2
|
+
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
3
|
+
import { LocalStorageProperties } from '../../../globaldependencies/constants/localstorage-properties';
|
|
4
|
+
import '../../../globaldependencies/helpers/fontawesome-icons';
|
|
5
|
+
import { PurchaseMoreLicensesComponent } from './purchase-more-licenses';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "ngx-toastr";
|
|
8
|
+
import * as i2 from "../../services/payment.service";
|
|
9
|
+
import * as i3 from "@angular/router";
|
|
10
|
+
import * as i4 from "ngx-cookie-service";
|
|
11
|
+
import * as i5 from "@angular/material/dialog";
|
|
12
|
+
import * as i6 from "@angular/flex-layout/flex";
|
|
13
|
+
import * as i7 from "@angular/material/card";
|
|
14
|
+
import * as i8 from "@angular/material/button";
|
|
15
|
+
import * as i9 from "@ncstate/sat-popover";
|
|
16
|
+
import * as i10 from "@angular/common";
|
|
17
|
+
import * as i11 from "@fortawesome/angular-fontawesome";
|
|
18
|
+
const _c0 = ["closeBookingPopup"];
|
|
19
|
+
function ProductAndServicesComponent_mat_card_13_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
21
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
22
|
+
i0.ɵɵelementStart(1, "div", 3);
|
|
23
|
+
i0.ɵɵelementStart(2, "span");
|
|
24
|
+
i0.ɵɵtext(3, " We are sorry to see you go. Thank you for letting us to be a part of your growth so far. We'll miss you around here! If you decide you'd like to continue using this product, you can renew at any time by clicking on the subscribe button. We hope to see you around! Thank you. ");
|
|
25
|
+
i0.ɵɵelementEnd();
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
i0.ɵɵelementStart(4, "div", 4);
|
|
28
|
+
i0.ɵɵelementStart(5, "button", 24);
|
|
29
|
+
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_1_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(2); return ctx_r7.navigateToSubscription(); });
|
|
30
|
+
i0.ɵɵtext(6, " Subscribe ");
|
|
31
|
+
i0.ɵɵelementEnd();
|
|
32
|
+
i0.ɵɵelementEnd();
|
|
33
|
+
i0.ɵɵelementEnd();
|
|
34
|
+
} }
|
|
35
|
+
function ProductAndServicesComponent_mat_card_13_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
36
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
37
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
38
|
+
i0.ɵɵelementStart(1, "div", 3);
|
|
39
|
+
i0.ɵɵelementStart(2, "span");
|
|
40
|
+
i0.ɵɵtext(3);
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
i0.ɵɵelementEnd();
|
|
43
|
+
i0.ɵɵelementStart(4, "div", 4);
|
|
44
|
+
i0.ɵɵelementStart(5, "button", 24);
|
|
45
|
+
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_2_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(2); return ctx_r9.navigateToSubscription(); });
|
|
46
|
+
i0.ɵɵtext(6, " Subscribe ");
|
|
47
|
+
i0.ɵɵelementEnd();
|
|
48
|
+
i0.ɵɵelementEnd();
|
|
49
|
+
i0.ɵɵelementEnd();
|
|
50
|
+
} if (rf & 2) {
|
|
51
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
52
|
+
i0.ɵɵadvance(3);
|
|
53
|
+
i0.ɵɵtextInterpolate1(" It looks like you\u2019ve already seen some great results with our Product. This is a great time to consider taking a look at our different plans, so that you can take full advantage of our Product. As your trail is going to expire in ", ctx_r4.noOfDays, " days, please have a look at our different plans and subscribe to them. ");
|
|
54
|
+
} }
|
|
55
|
+
function ProductAndServicesComponent_mat_card_13_div_3_button_15_Template(rf, ctx) { if (rf & 1) {
|
|
56
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
57
|
+
i0.ɵɵelementStart(0, "button", 24);
|
|
58
|
+
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_3_button_15_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(3); return ctx_r13.purchaseMoreLicenses(); });
|
|
59
|
+
i0.ɵɵtext(1, " Purchase more licenses ");
|
|
60
|
+
i0.ɵɵelementEnd();
|
|
61
|
+
} }
|
|
62
|
+
function ProductAndServicesComponent_mat_card_13_div_3_button_16_Template(rf, ctx) { if (rf & 1) {
|
|
63
|
+
const _r16 = i0.ɵɵgetCurrentView();
|
|
64
|
+
i0.ɵɵelementStart(0, "button", 24);
|
|
65
|
+
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_3_button_16_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(3); return ctx_r15.navigateToPlans(); });
|
|
66
|
+
i0.ɵɵtext(1, " Change Plan ");
|
|
67
|
+
i0.ɵɵelementEnd();
|
|
68
|
+
} }
|
|
69
|
+
function ProductAndServicesComponent_mat_card_13_div_3_Template(rf, ctx) { if (rf & 1) {
|
|
70
|
+
const _r18 = i0.ɵɵgetCurrentView();
|
|
71
|
+
i0.ɵɵelementStart(0, "div", 25);
|
|
72
|
+
i0.ɵɵelementStart(1, "div", 26);
|
|
73
|
+
i0.ɵɵelementStart(2, "label");
|
|
74
|
+
i0.ɵɵelementStart(3, "b");
|
|
75
|
+
i0.ɵɵtext(4);
|
|
76
|
+
i0.ɵɵelementEnd();
|
|
77
|
+
i0.ɵɵelementEnd();
|
|
78
|
+
i0.ɵɵelement(5, "br");
|
|
79
|
+
i0.ɵɵelementStart(6, "span");
|
|
80
|
+
i0.ɵɵtext(7);
|
|
81
|
+
i0.ɵɵelementEnd();
|
|
82
|
+
i0.ɵɵelement(8, "br");
|
|
83
|
+
i0.ɵɵelementStart(9, "span");
|
|
84
|
+
i0.ɵɵtext(10);
|
|
85
|
+
i0.ɵɵpipe(11, "date");
|
|
86
|
+
i0.ɵɵelementStart(12, "a", 27);
|
|
87
|
+
i0.ɵɵlistener("click", function ProductAndServicesComponent_mat_card_13_div_3_Template_a_click_12_listener() { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.cancelSubscription(); });
|
|
88
|
+
i0.ɵɵtext(13, "Cancel subscription");
|
|
89
|
+
i0.ɵɵelementEnd();
|
|
90
|
+
i0.ɵɵelementEnd();
|
|
91
|
+
i0.ɵɵelementEnd();
|
|
92
|
+
i0.ɵɵelementStart(14, "div", 28);
|
|
93
|
+
i0.ɵɵtemplate(15, ProductAndServicesComponent_mat_card_13_div_3_button_15_Template, 2, 0, "button", 29);
|
|
94
|
+
i0.ɵɵtemplate(16, ProductAndServicesComponent_mat_card_13_div_3_button_16_Template, 2, 0, "button", 29);
|
|
95
|
+
i0.ɵɵelementEnd();
|
|
96
|
+
i0.ɵɵelementEnd();
|
|
97
|
+
} if (rf & 2) {
|
|
98
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
99
|
+
i0.ɵɵadvance(4);
|
|
100
|
+
i0.ɵɵtextInterpolate(ctx_r5.productName);
|
|
101
|
+
i0.ɵɵadvance(3);
|
|
102
|
+
i0.ɵɵtextInterpolate2("", ctx_r5.totalNoOfActiveUsers, " of ", ctx_r5.totalNoOfPurchases, " Users assigned");
|
|
103
|
+
i0.ɵɵadvance(3);
|
|
104
|
+
i0.ɵɵtextInterpolate1("Automatically renews on ", i0.ɵɵpipeBind1(11, 6, ctx_r5.renewalDate), ". ");
|
|
105
|
+
i0.ɵɵadvance(5);
|
|
106
|
+
i0.ɵɵproperty("ngIf", !ctx_r5.isCancelled);
|
|
107
|
+
i0.ɵɵadvance(1);
|
|
108
|
+
i0.ɵɵproperty("ngIf", !ctx_r5.isCancelled);
|
|
109
|
+
} }
|
|
110
|
+
function ProductAndServicesComponent_mat_card_13_div_4_tr_8_Template(rf, ctx) { if (rf & 1) {
|
|
111
|
+
i0.ɵɵelementStart(0, "tr", 32);
|
|
112
|
+
i0.ɵɵelementStart(1, "td", 35);
|
|
113
|
+
i0.ɵɵelementStart(2, "span");
|
|
114
|
+
i0.ɵɵtext(3);
|
|
115
|
+
i0.ɵɵelement(4, "br");
|
|
116
|
+
i0.ɵɵtext(5);
|
|
117
|
+
i0.ɵɵelementEnd();
|
|
118
|
+
i0.ɵɵelementEnd();
|
|
119
|
+
i0.ɵɵelementStart(6, "td", 36);
|
|
120
|
+
i0.ɵɵtext(7);
|
|
121
|
+
i0.ɵɵelementEnd();
|
|
122
|
+
i0.ɵɵelementEnd();
|
|
123
|
+
} if (rf & 2) {
|
|
124
|
+
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
125
|
+
i0.ɵɵadvance(3);
|
|
126
|
+
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " (", history_r19.noofpurchasedlicences, " Users Included)");
|
|
127
|
+
i0.ɵɵadvance(2);
|
|
128
|
+
i0.ɵɵtextInterpolate1(" Billed every ", history_r19.subscriptionType, " ");
|
|
129
|
+
i0.ɵɵadvance(2);
|
|
130
|
+
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid, "");
|
|
131
|
+
} }
|
|
132
|
+
function ProductAndServicesComponent_mat_card_13_div_4_tr_9_Template(rf, ctx) { if (rf & 1) {
|
|
133
|
+
i0.ɵɵelementStart(0, "tr", 32);
|
|
134
|
+
i0.ɵɵelementStart(1, "td", 35);
|
|
135
|
+
i0.ɵɵelementStart(2, "span");
|
|
136
|
+
i0.ɵɵtext(3);
|
|
137
|
+
i0.ɵɵelementEnd();
|
|
138
|
+
i0.ɵɵelementEnd();
|
|
139
|
+
i0.ɵɵelementStart(4, "td", 36);
|
|
140
|
+
i0.ɵɵtext(5);
|
|
141
|
+
i0.ɵɵelementEnd();
|
|
142
|
+
i0.ɵɵelementEnd();
|
|
143
|
+
} if (rf & 2) {
|
|
144
|
+
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
145
|
+
i0.ɵɵadvance(3);
|
|
146
|
+
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " (", history_r19.originalPurchases, " Users Included) ");
|
|
147
|
+
i0.ɵɵadvance(2);
|
|
148
|
+
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid / history_r19.noofpurchasedlicences * history_r19.originalPurchases, "");
|
|
149
|
+
} }
|
|
150
|
+
function ProductAndServicesComponent_mat_card_13_div_4_tr_10_Template(rf, ctx) { if (rf & 1) {
|
|
151
|
+
i0.ɵɵelementStart(0, "tr", 32);
|
|
152
|
+
i0.ɵɵelementStart(1, "td", 35);
|
|
153
|
+
i0.ɵɵelementStart(2, "span");
|
|
154
|
+
i0.ɵɵtext(3);
|
|
155
|
+
i0.ɵɵelementEnd();
|
|
156
|
+
i0.ɵɵelementEnd();
|
|
157
|
+
i0.ɵɵelementStart(4, "td", 36);
|
|
158
|
+
i0.ɵɵtext(5);
|
|
159
|
+
i0.ɵɵelementEnd();
|
|
160
|
+
i0.ɵɵelementEnd();
|
|
161
|
+
} if (rf & 2) {
|
|
162
|
+
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
163
|
+
i0.ɵɵadvance(3);
|
|
164
|
+
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " Additional Users (", history_r19.noofpurchasedlicences - history_r19.originalPurchases, " Users)");
|
|
165
|
+
i0.ɵɵadvance(2);
|
|
166
|
+
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid / history_r19.noofpurchasedlicences * (history_r19.noofpurchasedlicences - history_r19.originalPurchases), " ");
|
|
167
|
+
} }
|
|
168
|
+
function ProductAndServicesComponent_mat_card_13_div_4_tr_11_Template(rf, ctx) { if (rf & 1) {
|
|
169
|
+
i0.ɵɵelementStart(0, "tr", 32);
|
|
170
|
+
i0.ɵɵelementStart(1, "td", 35);
|
|
171
|
+
i0.ɵɵtext(2);
|
|
172
|
+
i0.ɵɵelement(3, "br");
|
|
173
|
+
i0.ɵɵelementStart(4, "span", 37);
|
|
174
|
+
i0.ɵɵtext(5);
|
|
175
|
+
i0.ɵɵelementEnd();
|
|
176
|
+
i0.ɵɵelementEnd();
|
|
177
|
+
i0.ɵɵelementStart(6, "td", 36);
|
|
178
|
+
i0.ɵɵtext(7);
|
|
179
|
+
i0.ɵɵelementEnd();
|
|
180
|
+
i0.ɵɵelementEnd();
|
|
181
|
+
} if (rf & 2) {
|
|
182
|
+
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
183
|
+
i0.ɵɵadvance(2);
|
|
184
|
+
i0.ɵɵtextInterpolate2("", history_r19.purchaseType, " Total (", history_r19.noofpurchasedlicences, " Users)");
|
|
185
|
+
i0.ɵɵadvance(3);
|
|
186
|
+
i0.ɵɵtextInterpolate1(" Billed every ", history_r19.subscriptionType, "");
|
|
187
|
+
i0.ɵɵadvance(2);
|
|
188
|
+
i0.ɵɵtextInterpolate1(" \u00A3", history_r19.totalAmountPaid, "");
|
|
189
|
+
} }
|
|
190
|
+
function ProductAndServicesComponent_mat_card_13_div_4_tr_12_Template(rf, ctx) { if (rf & 1) {
|
|
191
|
+
i0.ɵɵelementStart(0, "tr");
|
|
192
|
+
i0.ɵɵelementStart(1, "span");
|
|
193
|
+
i0.ɵɵtext(2);
|
|
194
|
+
i0.ɵɵpipe(3, "date");
|
|
195
|
+
i0.ɵɵelementEnd();
|
|
196
|
+
i0.ɵɵelementEnd();
|
|
197
|
+
} if (rf & 2) {
|
|
198
|
+
const history_r19 = i0.ɵɵnextContext().$implicit;
|
|
199
|
+
i0.ɵɵadvance(2);
|
|
200
|
+
i0.ɵɵtextInterpolate1("Subscription was cancelled at ", i0.ɵɵpipeBind1(3, 1, history_r19.cancelledDate), "");
|
|
201
|
+
} }
|
|
202
|
+
function ProductAndServicesComponent_mat_card_13_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
203
|
+
i0.ɵɵelementStart(0, "div", 23);
|
|
204
|
+
i0.ɵɵelementStart(1, "div", 30);
|
|
205
|
+
i0.ɵɵelementStart(2, "table", 31);
|
|
206
|
+
i0.ɵɵelementStart(3, "tr", 32);
|
|
207
|
+
i0.ɵɵelementStart(4, "span", 33);
|
|
208
|
+
i0.ɵɵtext(5);
|
|
209
|
+
i0.ɵɵpipe(6, "date");
|
|
210
|
+
i0.ɵɵpipe(7, "date");
|
|
211
|
+
i0.ɵɵelementEnd();
|
|
212
|
+
i0.ɵɵelementEnd();
|
|
213
|
+
i0.ɵɵtemplate(8, ProductAndServicesComponent_mat_card_13_div_4_tr_8_Template, 8, 4, "tr", 34);
|
|
214
|
+
i0.ɵɵtemplate(9, ProductAndServicesComponent_mat_card_13_div_4_tr_9_Template, 6, 3, "tr", 34);
|
|
215
|
+
i0.ɵɵtemplate(10, ProductAndServicesComponent_mat_card_13_div_4_tr_10_Template, 6, 3, "tr", 34);
|
|
216
|
+
i0.ɵɵtemplate(11, ProductAndServicesComponent_mat_card_13_div_4_tr_11_Template, 8, 4, "tr", 34);
|
|
217
|
+
i0.ɵɵtemplate(12, ProductAndServicesComponent_mat_card_13_div_4_tr_12_Template, 4, 3, "tr", 7);
|
|
218
|
+
i0.ɵɵelementEnd();
|
|
219
|
+
i0.ɵɵelementEnd();
|
|
220
|
+
i0.ɵɵelementEnd();
|
|
221
|
+
} if (rf & 2) {
|
|
222
|
+
const history_r19 = ctx.$implicit;
|
|
223
|
+
i0.ɵɵadvance(5);
|
|
224
|
+
i0.ɵɵtextInterpolate2("Subscription term : ", i0.ɵɵpipeBind1(6, 7, history_r19.startTime), " to ", i0.ɵɵpipeBind1(7, 9, history_r19.endTime), "");
|
|
225
|
+
i0.ɵɵadvance(3);
|
|
226
|
+
i0.ɵɵproperty("ngIf", !history_r19.isUpdate);
|
|
227
|
+
i0.ɵɵadvance(1);
|
|
228
|
+
i0.ɵɵproperty("ngIf", history_r19.isUpdate);
|
|
229
|
+
i0.ɵɵadvance(1);
|
|
230
|
+
i0.ɵɵproperty("ngIf", history_r19.isUpdate);
|
|
231
|
+
i0.ɵɵadvance(1);
|
|
232
|
+
i0.ɵɵproperty("ngIf", history_r19.isUpdate);
|
|
233
|
+
i0.ɵɵadvance(1);
|
|
234
|
+
i0.ɵɵproperty("ngIf", history_r19.isCancelled);
|
|
235
|
+
} }
|
|
236
|
+
function ProductAndServicesComponent_mat_card_13_Template(rf, ctx) { if (rf & 1) {
|
|
237
|
+
i0.ɵɵelementStart(0, "mat-card");
|
|
238
|
+
i0.ɵɵtemplate(1, ProductAndServicesComponent_mat_card_13_div_1_Template, 7, 0, "div", 19);
|
|
239
|
+
i0.ɵɵtemplate(2, ProductAndServicesComponent_mat_card_13_div_2_Template, 7, 1, "div", 20);
|
|
240
|
+
i0.ɵɵtemplate(3, ProductAndServicesComponent_mat_card_13_div_3_Template, 17, 8, "div", 21);
|
|
241
|
+
i0.ɵɵtemplate(4, ProductAndServicesComponent_mat_card_13_div_4_Template, 13, 11, "div", 22);
|
|
242
|
+
i0.ɵɵelementEnd();
|
|
243
|
+
} if (rf & 2) {
|
|
244
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
245
|
+
i0.ɵɵadvance(1);
|
|
246
|
+
i0.ɵɵproperty("ngIf", ctx_r1.isCancelled);
|
|
247
|
+
i0.ɵɵadvance(1);
|
|
248
|
+
i0.ɵɵproperty("ngIf", ctx_r1.isTrailValid);
|
|
249
|
+
i0.ɵɵadvance(1);
|
|
250
|
+
i0.ɵɵproperty("ngIf", ctx_r1.isTrailValid == false && !ctx_r1.isCancelled);
|
|
251
|
+
i0.ɵɵadvance(1);
|
|
252
|
+
i0.ɵɵproperty("ngForOf", ctx_r1.paymentHistory);
|
|
253
|
+
} }
|
|
254
|
+
export class ProductAndServicesComponent {
|
|
255
|
+
constructor(data, toastr, paymentService, router, cookieService, dialog) {
|
|
256
|
+
this.data = data;
|
|
257
|
+
this.toastr = toastr;
|
|
258
|
+
this.paymentService = paymentService;
|
|
259
|
+
this.router = router;
|
|
260
|
+
this.cookieService = cookieService;
|
|
261
|
+
this.dialog = dialog;
|
|
262
|
+
this.isSubscriptionCancel = false;
|
|
263
|
+
this.isAnyOperationIsInprogress = false;
|
|
264
|
+
this.isFromRoute = false;
|
|
265
|
+
this.totalNoOfActiveUsers = 0;
|
|
266
|
+
this.totalNoOfPurchases = 0;
|
|
267
|
+
this.isShowRenewal = false;
|
|
268
|
+
this.productName = "Snovasys";
|
|
269
|
+
this.isTrailValid = true;
|
|
270
|
+
this.noOfDays = 0;
|
|
271
|
+
this.isLoading = true;
|
|
272
|
+
}
|
|
273
|
+
ngOnInit() {
|
|
274
|
+
if (this.cookieService.check(LocalStorageProperties.CompanyDetails) && this.cookieService.check(LocalStorageProperties.CompanyId)) {
|
|
275
|
+
this.company = JSON.parse(this.cookieService.get(LocalStorageProperties.CompanyDetails));
|
|
276
|
+
this.noOfDays = this.company != null && this.company != undefined ? this.company.trailDays : 0;
|
|
277
|
+
}
|
|
278
|
+
this.getActiveUsersCount();
|
|
279
|
+
this.getPurchasedLicensesCount();
|
|
280
|
+
this.getPaymentHistory();
|
|
281
|
+
}
|
|
282
|
+
cancelSubscription() {
|
|
283
|
+
this.paymentService.cancelSubscription().subscribe((responseData) => {
|
|
284
|
+
if (responseData.success == true) {
|
|
285
|
+
this.toastr.success("Your subscription has been cancelled successfully");
|
|
286
|
+
this.isSubscriptionCancel = true;
|
|
287
|
+
setTimeout(() => {
|
|
288
|
+
this.getPurchasedLicensesCount();
|
|
289
|
+
this.getPaymentHistory();
|
|
290
|
+
}, 2000);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
this.toastr.error(responseData.apiResponseMessages[0].message);
|
|
294
|
+
this.isSubscriptionCancel = false;
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
getActiveUsersCount() {
|
|
299
|
+
this.paymentService.getActiveUsersCount().subscribe((responseData) => {
|
|
300
|
+
if (responseData.success == true) {
|
|
301
|
+
this.totalNoOfActiveUsers = responseData.data;
|
|
302
|
+
}
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
getPurchasedLicensesCount() {
|
|
306
|
+
this.isLoading = true;
|
|
307
|
+
this.paymentService.getPurchasedLicensesCount().subscribe((responseData) => {
|
|
308
|
+
if (responseData.success == true) {
|
|
309
|
+
if (responseData.data) {
|
|
310
|
+
this.totalNoOfPurchases = responseData.data.purchasedLicensesCount;
|
|
311
|
+
this.isShowRenewal = responseData.data.isShowRenewal;
|
|
312
|
+
this.productName = responseData.data.purchaseType;
|
|
313
|
+
this.isTrailValid = false;
|
|
314
|
+
this.renewalDate = responseData.data.renewalDate;
|
|
315
|
+
this.isCancelled = responseData.data.isCancelled;
|
|
316
|
+
this.subscriptionType = responseData.data.subscriptionType;
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
this.isTrailValid = true;
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
this.isLoading = false;
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
navigateToSubscription() {
|
|
326
|
+
this.router.navigate(["/shell/payments-plans"]);
|
|
327
|
+
}
|
|
328
|
+
purchaseMoreLicenses() {
|
|
329
|
+
const dialogRef = this.dialog.open(PurchaseMoreLicensesComponent, {
|
|
330
|
+
height: "45%",
|
|
331
|
+
width: "28%",
|
|
332
|
+
hasBackdrop: true,
|
|
333
|
+
direction: "ltr",
|
|
334
|
+
data: { noOfPurchases: this.totalNoOfPurchases, productName: this.productName, subscriptionType: this.subscriptionType },
|
|
335
|
+
disableClose: true
|
|
336
|
+
});
|
|
337
|
+
dialogRef.afterClosed().subscribe((result) => {
|
|
338
|
+
if (result != undefined && result.isReload == true) {
|
|
339
|
+
this.getPaymentHistory();
|
|
340
|
+
this.getPurchasedLicensesCount();
|
|
341
|
+
}
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
navigateToPlans() {
|
|
345
|
+
this.router.navigate(["/shell/payments-plans"]);
|
|
346
|
+
}
|
|
347
|
+
getPaymentHistory() {
|
|
348
|
+
this.paymentService.getPaymentHistory().subscribe((responseData) => {
|
|
349
|
+
if (responseData.success == true) {
|
|
350
|
+
this.paymentHistory = responseData.data;
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
this.toastr.error(responseData.apiResponseMessages[0].message);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
openpop(closeBookingPopup) {
|
|
358
|
+
closeBookingPopup.openPopover();
|
|
359
|
+
}
|
|
360
|
+
close() {
|
|
361
|
+
this.closeBookingPopup.forEach((p) => p.closePopover());
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
ProductAndServicesComponent.ɵfac = function ProductAndServicesComponent_Factory(t) { return new (t || ProductAndServicesComponent)(i0.ɵɵdirectiveInject(MAT_DIALOG_DATA), i0.ɵɵdirectiveInject(i1.ToastrService), i0.ɵɵdirectiveInject(i2.PaymentService), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i4.CookieService), i0.ɵɵdirectiveInject(i5.MatDialog)); };
|
|
365
|
+
ProductAndServicesComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProductAndServicesComponent, selectors: [["app-product-services-component"]], viewQuery: function ProductAndServicesComponent_Query(rf, ctx) { if (rf & 1) {
|
|
366
|
+
i0.ɵɵviewQuery(_c0, 5);
|
|
367
|
+
} if (rf & 2) {
|
|
368
|
+
let _t;
|
|
369
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.closeBookingPopup = _t);
|
|
370
|
+
} }, decls: 27, vars: 5, consts: [["fxFlex", "", "fxFlex", "100"], [1, "ml-1", "mt-05"], ["fxLayout", "row", 2, "height", "fit-content", "border", "1px solid #eceaea", "margin", "0", "padding", "0px 10px 0px 10px", "background", "aliceblue"], ["fxFlex", "80", 2, "padding-top", "15px !important"], ["fxFlex", "20", 2, "text-align", "right"], ["mat-raised-button", "", "color", "primary", "type", "submit", 1, "ml-05", "mt-05", "mb-05", 3, "satPopoverAnchorFor", "click"], ["closeBookingPopup", "satPopoverAnchor"], [4, "ngIf"], ["hasBackdrop", "", "backdropClass", "backdrop-color", "scrollStrategy", "reposition", "verticalAlign", "below", "horizontalAlign", "before", 3, "autoFocus", "restoreFocus", "interactiveClose"], ["feedTimeSheet", ""], [1, "filter-data", "p-0", 2, "min-height", "150px"], [1, "custom-dialog"], ["mat-dialog-close", "", 1, "custom-close", "ml-lg-n4", "mt-0", "mt-lg-n4", "ml-n3", 3, "click"], ["icon", "times", 1, "project-dialog"], [1, "text-center"], [1, "card-title-text", "mat-bg-primary", "p-05", "mb-1"], [1, "mt-05"], [1, "card-content"], ["fxFlex", "100", 1, "mt-2", 2, "text-align", "center"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 0px 10px 0px 10px;", "fxLayout", "row", 4, "ngIf"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 0px 10px 0px 10px; ", "fxLayout", "row", 4, "ngIf"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 15px;", "fxLayout", "row", 4, "ngIf"], ["style", "height: fit-content;border: 1px solid #eceaea;margin: 0;padding: 0px 10px 0px 10px;", "fxLayout", "row", 4, "ngFor", "ngForOf"], ["fxLayout", "row", 2, "height", "fit-content", "border", "1px solid #eceaea", "margin", "0", "padding", "0px 10px 0px 10px"], ["mat-raised-button", "", "color", "primary", "type", "submit", 1, "ml-05", "mt-05", 3, "click"], ["fxLayout", "row", 2, "height", "fit-content", "border", "1px solid #eceaea", "margin", "0", "padding", "15px"], ["fxFlex", "70"], [2, "cursor", "pointer", "color", "#337ab7 !important", "text-decoration", "none !important", 3, "click"], ["fxFlex", "30", 2, "text-align", "right"], ["mat-raised-button", "", "color", "primary", "type", "submit", "class", "ml-05 mt-05", 3, "click", 4, "ngIf"], ["fxFlex", "70", 2, "padding-top", "15px !important"], [2, "width", "100%"], ["fxLayout", "row"], [2, "font-weight", "bold"], ["fxLayout", "row", 4, "ngIf"], ["fxFlex", "80"], ["fxFlex", "20"], [2, "font-size", "14px"]], template: function ProductAndServicesComponent_Template(rf, ctx) { if (rf & 1) {
|
|
371
|
+
const _r30 = i0.ɵɵgetCurrentView();
|
|
372
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
373
|
+
i0.ɵɵelementStart(1, "h4", 1);
|
|
374
|
+
i0.ɵɵtext(2, "Products & Services");
|
|
375
|
+
i0.ɵɵelementEnd();
|
|
376
|
+
i0.ɵɵelement(3, "hr");
|
|
377
|
+
i0.ɵɵelementEnd();
|
|
378
|
+
i0.ɵɵelementStart(4, "mat-card");
|
|
379
|
+
i0.ɵɵelementStart(5, "div", 2);
|
|
380
|
+
i0.ɵɵelementStart(6, "div", 3);
|
|
381
|
+
i0.ɵɵelementStart(7, "span");
|
|
382
|
+
i0.ɵɵtext(8, " Customize and enhance your plan with additional features. ");
|
|
383
|
+
i0.ɵɵelementEnd();
|
|
384
|
+
i0.ɵɵelementEnd();
|
|
385
|
+
i0.ɵɵelementStart(9, "div", 4);
|
|
386
|
+
i0.ɵɵelementStart(10, "button", 5, 6);
|
|
387
|
+
i0.ɵɵlistener("click", function ProductAndServicesComponent_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r30); const _r0 = i0.ɵɵreference(11); return ctx.openpop(_r0); });
|
|
388
|
+
i0.ɵɵtext(12, " Customize ");
|
|
389
|
+
i0.ɵɵelementEnd();
|
|
390
|
+
i0.ɵɵelementEnd();
|
|
391
|
+
i0.ɵɵelementEnd();
|
|
392
|
+
i0.ɵɵelementEnd();
|
|
393
|
+
i0.ɵɵtemplate(13, ProductAndServicesComponent_mat_card_13_Template, 5, 4, "mat-card", 7);
|
|
394
|
+
i0.ɵɵelementStart(14, "sat-popover", 8, 9);
|
|
395
|
+
i0.ɵɵelementStart(16, "mat-card", 10);
|
|
396
|
+
i0.ɵɵelementStart(17, "div", 11);
|
|
397
|
+
i0.ɵɵelementStart(18, "div", 12);
|
|
398
|
+
i0.ɵɵlistener("click", function ProductAndServicesComponent_Template_div_click_18_listener() { return ctx.close(); });
|
|
399
|
+
i0.ɵɵelement(19, "fa-icon", 13);
|
|
400
|
+
i0.ɵɵelementEnd();
|
|
401
|
+
i0.ɵɵelementEnd();
|
|
402
|
+
i0.ɵɵelementStart(20, "mat-card-title", 14);
|
|
403
|
+
i0.ɵɵelementStart(21, "div", 15);
|
|
404
|
+
i0.ɵɵelementStart(22, "h4", 16);
|
|
405
|
+
i0.ɵɵtext(23, " Customize site");
|
|
406
|
+
i0.ɵɵelementEnd();
|
|
407
|
+
i0.ɵɵelementEnd();
|
|
408
|
+
i0.ɵɵelementEnd();
|
|
409
|
+
i0.ɵɵelementStart(24, "mat-card-content", 17);
|
|
410
|
+
i0.ɵɵelementStart(25, "div", 18);
|
|
411
|
+
i0.ɵɵtext(26, " If there is need to customize the site, then please call 0044-7944144944. ");
|
|
412
|
+
i0.ɵɵelementEnd();
|
|
413
|
+
i0.ɵɵelementEnd();
|
|
414
|
+
i0.ɵɵelementEnd();
|
|
415
|
+
i0.ɵɵelementEnd();
|
|
416
|
+
} if (rf & 2) {
|
|
417
|
+
const _r2 = i0.ɵɵreference(15);
|
|
418
|
+
i0.ɵɵadvance(10);
|
|
419
|
+
i0.ɵɵproperty("satPopoverAnchorFor", _r2);
|
|
420
|
+
i0.ɵɵadvance(3);
|
|
421
|
+
i0.ɵɵproperty("ngIf", !ctx.isLoading);
|
|
422
|
+
i0.ɵɵadvance(1);
|
|
423
|
+
i0.ɵɵproperty("autoFocus", false)("restoreFocus", false)("interactiveClose", false);
|
|
424
|
+
} }, directives: [i6.DefaultFlexDirective, i7.MatCard, i6.DefaultLayoutDirective, i8.MatButton, i9.SatPopoverAnchor, i10.NgIf, i9.SatPopover, i5.MatDialogClose, i11.FaIconComponent, i7.MatCardTitle, i7.MatCardContent, i10.NgForOf], pipes: [i10.DatePipe], encapsulation: 2 });
|
|
425
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProductAndServicesComponent, [{
|
|
426
|
+
type: Component,
|
|
427
|
+
args: [{
|
|
428
|
+
selector: "app-product-services-component",
|
|
429
|
+
templateUrl: "./product-service.component.html"
|
|
430
|
+
}]
|
|
431
|
+
}], function () { return [{ type: undefined, decorators: [{
|
|
432
|
+
type: Inject,
|
|
433
|
+
args: [MAT_DIALOG_DATA]
|
|
434
|
+
}] }, { type: i1.ToastrService }, { type: i2.PaymentService }, { type: i3.Router }, { type: i4.CookieService }, { type: i5.MatDialog }]; }, { closeBookingPopup: [{
|
|
435
|
+
type: ViewChildren,
|
|
436
|
+
args: ["closeBookingPopup"]
|
|
437
|
+
}] }); })();
|
|
438
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1zZXJ2aWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvUGF5bWVudHMvcHJvZHVjdC1zZXJ2aWNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvUGF5bWVudHMvcHJvZHVjdC1zZXJ2aWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTXBGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ3ZHLE9BQU8sdURBQXVELENBQUM7QUFFL0QsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7SUNZckUsK0JBQ3dCO0lBQ3BCLDhCQUF1RDtJQUNuRCw0QkFBTTtJQUFDLG9TQUdQO0lBQUEsaUJBQU87SUFDWCxpQkFBTTtJQUNOLDhCQUE0QztJQUN4QyxrQ0FDdUM7SUFBbkMsd05BQWtDO0lBQ2xDLDJCQUNKO0lBQUEsaUJBQVM7SUFDYixpQkFBTTtJQUNWLGlCQUFNOzs7O0lBQ04sK0JBQ3lCO0lBQ3JCLDhCQUF1RDtJQUNuRCw0QkFBTTtJQUFDLFlBSVA7SUFBQSxpQkFBTztJQUNYLGlCQUFNO0lBQ04sOEJBQTRDO0lBQ3hDLGtDQUN1QztJQUFuQyx5TkFBa0M7SUFDbEMsMkJBQ0o7SUFBQSxpQkFBUztJ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LDJCQUFBOzt1RkRyR2xDLDJCQUEyQjtjQUx2QyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztnQkFDMUMsV0FBVyxFQUFFLGtDQUFrQzthQUNoRDs7c0JBd0JjLE1BQU07dUJBQUMsZUFBZTswSkFEQSxpQkFBaUI7a0JBQW5ELFlBQVk7bUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7IE1hdE9wdGlvbiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC90YWJzXCI7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsZGVwZW5kZW5jaWVzL2NvbnN0YW50cy9sb2NhbHN0b3JhZ2UtcHJvcGVydGllcyc7XG5pbXBvcnQgJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9oZWxwZXJzL2ZvbnRhd2Vzb21lLWljb25zJztcbmltcG9ydCB7IFBheW1lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcGF5bWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IFB1cmNoYXNlTW9yZUxpY2Vuc2VzQ29tcG9uZW50IH0gZnJvbSAnLi9wdXJjaGFzZS1tb3JlLWxpY2Vuc2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImFwcC1wcm9kdWN0LXNlcnZpY2VzLWNvbXBvbmVudFwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL3Byb2R1Y3Qtc2VydmljZS5jb21wb25lbnQuaHRtbFwiXG59KVxuXG5leHBvcnQgY2xhc3MgUHJvZHVjdEFuZFNlcnZpY2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuXG4gIHNlbGVjdGVkVGFiOiBzdHJpbmc7XG4gIHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjtcbiAgcGF5bWVudERldGFpbHM6IGFueTtcbiAgaXNTdWJzY3JpcHRpb25DYW5jZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNBbnlPcGVyYXRpb25Jc0lucHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNGcm9tUm91dGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgdG90YWxOb09mQWN0aXZlVXNlcnM6IGFueSA9IDA7XG4gIHRvdGFsTm9PZlB1cmNoYXNlczogYW55ID0gMDtcbiAgaXNTaG93UmVuZXdhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm9kdWN0TmFtZTogc3RyaW5nID0gXCJTbm92YXN5c1wiO1xuICBpc1RyYWlsVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuICBub09mRGF5czogYW55ID0gMDtcbiAgY29tcGFueTogYW55O1xuICByZW5ld2FsRGF0ZTogYW55O1xuICBpc0NhbmNlbGxlZDogYm9vbGVhbjtcbiAgc3Vic2NyaXB0aW9uVHlwZTogYW55O1xuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xuICBwYXltZW50SGlzdG9yeSA6IGFueTtcbiAgQFZpZXdDaGlsZHJlbihcImNsb3NlQm9va2luZ1BvcHVwXCIpIGNsb3NlQm9va2luZ1BvcHVwO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZVxuICAgICwgcHJpdmF0ZSBwYXltZW50U2VydmljZTogUGF5bWVudFNlcnZpY2VcbiAgICAsIHB1YmxpYyByb3V0ZXI6IFJvdXRlclxuICAgICwgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxuICAgIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywpIHtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuY29va2llU2VydmljZS5jaGVjayhMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkNvbXBhbnlEZXRhaWxzKSAmJiB0aGlzLmNvb2tpZVNlcnZpY2UuY2hlY2soTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Db21wYW55SWQpKSB7XG4gICAgICB0aGlzLmNvbXBhbnkgPSBKU09OLnBhcnNlKHRoaXMuY29va2llU2VydmljZS5nZXQoTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Db21wYW55RGV0YWlscykpO1xuICAgICAgdGhpcy5ub09mRGF5cyA9IHRoaXMuY29tcGFueSAhPSBudWxsICYmIHRoaXMuY29tcGFueSAhPSB1bmRlZmluZWQgPyB0aGlzLmNvbXBhbnkudHJhaWxEYXlzIDogMDtcbiAgICB9XG4gICAgdGhpcy5nZXRBY3RpdmVVc2Vyc0NvdW50KCk7XG4gICAgdGhpcy5nZXRQdXJjaGFzZWRMaWNlbnNlc0NvdW50KCk7XG4gICAgdGhpcy5nZXRQYXltZW50SGlzdG9yeSgpO1xuICB9XG5cbiAgY2FuY2VsU3Vic2NyaXB0aW9uKCkge1xuICAgIHRoaXMucGF5bWVudFNlcnZpY2UuY2FuY2VsU3Vic2NyaXB0aW9uKCkuc3Vic2NyaWJlKChyZXNwb25zZURhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlRGF0YS5zdWNjZXNzID09IHRydWUpIHtcbiAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcyhcIllvdXIgc3Vic2NyaXB0aW9uIGhhcyBiZWVuIGNhbmNlbGxlZCBzdWNjZXNzZnVsbHlcIik7XG4gICAgICAgIHRoaXMuaXNTdWJzY3JpcHRpb25DYW5jZWwgPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpPT57XG4gICAgICAgICAgdGhpcy5nZXRQdXJjaGFzZWRMaWNlbnNlc0NvdW50KCk7XG4gICAgICAgICAgdGhpcy5nZXRQYXltZW50SGlzdG9yeSgpO1xuICAgICB9LCAyMDAwKTtcbiAgICAgICBcbiAgICAgIH1cbiAgICAgIGVsc2Uge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihyZXNwb25zZURhdGEuYXBpUmVzcG9uc2VNZXNzYWdlc1swXS5tZXNzYWdlKTtcbiAgICAgICAgdGhpcy5pc1N1YnNjcmlwdGlvbkNhbmNlbCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGdldEFjdGl2ZVVzZXJzQ291bnQoKSB7XG4gICAgdGhpcy5wYXltZW50U2VydmljZS5nZXRBY3RpdmVVc2Vyc0NvdW50KCkuc3Vic2NyaWJlKChyZXNwb25zZURhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlRGF0YS5zdWNjZXNzID09IHRydWUpIHtcbiAgICAgICAgdGhpcy50b3RhbE5vT2ZBY3RpdmVVc2VycyA9IHJlc3BvbnNlRGF0YS5kYXRhO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UHVyY2hhc2VkTGljZW5zZXNDb3VudCgpIHtcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgdGhpcy5wYXltZW50U2VydmljZS5nZXRQdXJjaGFzZWRMaWNlbnNlc0NvdW50KCkuc3Vic2NyaWJlKChyZXNwb25zZURhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlRGF0YS5zdWNjZXNzID09IHRydWUpIHtcbiAgICAgICAgaWYgKHJlc3BvbnNlRGF0YS5kYXRhKSB7XG4gICAgICAgICAgdGhpcy50b3RhbE5vT2ZQdXJjaGFzZXMgPSByZXNwb25zZURhdGEuZGF0YS5wdXJjaGFzZWRMaWNlbnNlc0NvdW50O1xuICAgICAgICAgIHRoaXMuaXNTaG93UmVuZXdhbCA9IHJlc3BvbnNlRGF0YS5kYXRhLmlzU2hvd1JlbmV3YWw7XG4gICAgICAgICAgdGhpcy5wcm9kdWN0TmFtZSA9IHJlc3BvbnNlRGF0YS5kYXRhLnB1cmNoYXNlVHlwZTtcbiAgICAgICAgICB0aGlzLmlzVHJhaWxWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMucmVuZXdhbERhdGUgPSByZXNwb25zZURhdGEuZGF0YS5yZW5ld2FsRGF0ZTtcbiAgICAgICAgICB0aGlzLmlzQ2FuY2VsbGVkID0gcmVzcG9uc2VEYXRhLmRhdGEuaXNDYW5jZWxsZWQ7XG4gICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25UeXBlID0gcmVzcG9uc2VEYXRhLmRhdGEuc3Vic2NyaXB0aW9uVHlwZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICB0aGlzLmlzVHJhaWxWYWxpZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfSk7XG4gIH1cblxuICBuYXZpZ2F0ZVRvU3Vic2NyaXB0aW9uKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9zaGVsbC9wYXltZW50cy1wbGFuc1wiXSk7XG4gIH1cblxuICBwdXJjaGFzZU1vcmVMaWNlbnNlcygpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFB1cmNoYXNlTW9yZUxpY2Vuc2VzQ29tcG9uZW50LCB7XG4gICAgICBoZWlnaHQ6IFwiNDUlXCIsXG4gICAgICB3aWR0aDogXCIyOCVcIixcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgZGlyZWN0aW9uOiBcImx0clwiLFxuICAgICAgZGF0YTogeyBub09mUHVyY2hhc2VzOiB0aGlzLnRvdGFsTm9PZlB1cmNoYXNlcywgcHJvZHVjdE5hbWU6IHRoaXMucHJvZHVjdE5hbWUsIHN1YnNjcmlwdGlvblR5cGU6IHRoaXMuc3Vic2NyaXB0aW9uVHlwZSB9LFxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXG4gICAgfSk7XG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGlmKHJlc3VsdCAhPXVuZGVmaW5lZCAmJiByZXN1bHQuaXNSZWxvYWQgPT0gdHJ1ZSl7XG4gICAgICAgIHRoaXMuZ2V0UGF5bWVudEhpc3RvcnkoKTtcbiAgICAgICAgdGhpcy5nZXRQdXJjaGFzZWRMaWNlbnNlc0NvdW50KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmF2aWdhdGVUb1BsYW5zKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9zaGVsbC9wYXltZW50cy1wbGFuc1wiXSk7XG4gIH1cbiAgZ2V0UGF5bWVudEhpc3RvcnkoKXtcbiAgICB0aGlzLnBheW1lbnRTZXJ2aWNlLmdldFBheW1lbnRIaXN0b3J5KCkuc3Vic2NyaWJlKChyZXNwb25zZURhdGE6IGFueSkgPT4ge1xuICAgICAgaWYgKHJlc3BvbnNlRGF0YS5zdWNjZXNzID09IHRydWUpIHtcbiAgICAgICAgdGhpcy5wYXltZW50SGlzdG9yeSA9IHJlc3BvbnNlRGF0YS5kYXRhXG4gICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IocmVzcG9uc2VEYXRhLmFwaVJlc3BvbnNlTWVzc2FnZXNbMF0ubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgb3BlbnBvcChjbG9zZUJvb2tpbmdQb3B1cCkge1xuICAgIGNsb3NlQm9va2luZ1BvcHVwLm9wZW5Qb3BvdmVyKCk7XG4gIH1cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5jbG9zZUJvb2tpbmdQb3B1cC5mb3JFYWNoKChwKSA9PiBwLmNsb3NlUG9wb3ZlcigpKTtcbn1cblxufVxuIiwiPGRpdiBmeEZsZXggZnhGbGV4PVwiMTAwXCI+XG4gICAgPGg0IGNsYXNzPVwibWwtMSBtdC0wNVwiPlByb2R1Y3RzICYgU2VydmljZXM8L2g0PlxuICAgIDxocj5cbjwvZGl2PlxuPG1hdC1jYXJkPlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6Zml0LWNvbnRlbnQ7Ym9yZGVyOiAxcHggc29saWQgI2VjZWFlYTttYXJnaW46IDA7cGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7IGJhY2tncm91bmQ6IGFsaWNlYmx1ZTtcIlxuICAgICAgICBmeExheW91dD1cInJvd1wiPlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjgwXCIgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTVweCAhaW1wb3J0YW50O1wiPlxuICAgICAgICAgICAgPHNwYW4+IEN1c3RvbWl6ZSBhbmQgZW5oYW5jZSB5b3VyIHBsYW4gd2l0aCBhZGRpdGlvbmFsIGZlYXR1cmVzLlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCIyMFwiIHN0eWxlPVwidGV4dC1hbGlnbjogcmlnaHQ7XCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cIm1sLTA1IG10LTA1IG1iLTA1XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbnBvcChjbG9zZUJvb2tpbmdQb3B1cClcIiBbc2F0UG9wb3ZlckFuY2hvckZvcl09XCJmZWVkVGltZVNoZWV0XCJcbiAgICAgICAgICAgICAgICAjY2xvc2VCb29raW5nUG9wdXA9XCJzYXRQb3BvdmVyQW5jaG9yXCI+XG4gICAgICAgICAgICAgICAgQ3VzdG9taXplXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbjwvbWF0LWNhcmQ+XG48bWF0LWNhcmQgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogZml0LWNvbnRlbnQ7Ym9yZGVyOiAxcHggc29saWQgI2VjZWFlYTttYXJnaW46IDA7cGFkZGluZzogMHB4IDEwcHggMHB4IDEwcHg7XCIgZnhMYXlvdXQ9XCJyb3dcIlxuICAgICAgICAqbmdJZj1cImlzQ2FuY2VsbGVkXCI+XG4gICAgICAgIDxkaXYgZnhGbGV4PVwiODBcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XCI+XG4gICAgICAgICAgICA8c3Bhbj4gV2UgYXJlIHNvcnJ5IHRvIHNlZSB5b3UgZ28uIFRoYW5rIHlvdSBmb3IgbGV0dGluZyB1cyB0byBiZSBhIHBhcnQgb2YgeW91ciBncm93dGggc28gZmFyLiBXZSdsbCBtaXNzXG4gICAgICAgICAgICAgICAgeW91IGFyb3VuZCBoZXJlISBJZiB5b3UgZGVjaWRlIHlvdSdkIGxpa2UgdG8gY29udGludWUgdXNpbmcgdGhpcyBwcm9kdWN0LCB5b3UgY2FuIHJlbmV3IGF0IGFueSB0aW1lIGJ5XG4gICAgICAgICAgICAgICAgY2xpY2tpbmcgb24gdGhlIHN1YnNjcmliZSBidXR0b24uIFdlIGhvcGUgdG8gc2VlIHlvdSBhcm91bmQhIFRoYW5rIHlvdS5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZnhGbGV4PVwiMjBcIiBzdHlsZT1cInRleHQtYWxpZ246IHJpZ2h0O1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJtbC0wNSBtdC0wNVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9TdWJzY3JpcHRpb24oKVwiPlxuICAgICAgICAgICAgICAgIFN1YnNjcmliZVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IGZpdC1jb250ZW50O2JvcmRlcjogMXB4IHNvbGlkICNlY2VhZWE7bWFyZ2luOiAwO3BhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4OyBcIiBmeExheW91dD1cInJvd1wiXG4gICAgICAgICpuZ0lmPVwiaXNUcmFpbFZhbGlkXCI+XG4gICAgICAgIDxkaXYgZnhGbGV4PVwiODBcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAxNXB4ICFpbXBvcnRhbnQ7XCI+XG4gICAgICAgICAgICA8c3Bhbj4gSXQgbG9va3MgbGlrZSB5b3XigJl2ZSBhbHJlYWR5IHNlZW4gc29tZSBncmVhdCByZXN1bHRzIHdpdGggb3VyIFByb2R1Y3QuIFRoaXMgaXMgYSBncmVhdCB0aW1lIHRvXG4gICAgICAgICAgICAgICAgY29uc2lkZXIgdGFraW5nIGEgbG9vayBhdCBvdXIgZGlmZmVyZW50IHBsYW5zLCBzbyB0aGF0IHlvdSBjYW4gdGFrZSBmdWxsIGFkdmFudGFnZSBvZiBvdXIgUHJvZHVjdC4gQXNcbiAgICAgICAgICAgICAgICB5b3VyIHRyYWlsIGlzIGdvaW5nIHRvIGV4cGlyZSBpbiB7e25vT2ZEYXlzfX0gZGF5cywgcGxlYXNlIGhhdmUgYSBsb29rIGF0IG91ciBkaWZmZXJlbnQgcGxhbnMgYW5kXG4gICAgICAgICAgICAgICAgc3Vic2NyaWJlIHRvIHRoZW0uXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjIwXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodDtcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtMDUgbXQtMDVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvU3Vic2NyaXB0aW9uKClcIj5cbiAgICAgICAgICAgICAgICBTdWJzY3JpYmVcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiBmaXQtY29udGVudDtib3JkZXI6IDFweCBzb2xpZCAjZWNlYWVhO21hcmdpbjogMDtwYWRkaW5nOiAxNXB4O1wiIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgKm5nSWY9XCJpc1RyYWlsVmFsaWQgPT0gZmFsc2UgJiYgIWlzQ2FuY2VsbGVkXCI+XG5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCI3MFwiPlxuICAgICAgICAgICAgPGxhYmVsPjxiPnt7cHJvZHVjdE5hbWV9fTwvYj48L2xhYmVsPjxicj5cbiAgICAgICAgICAgIDxzcGFuPnt7dG90YWxOb09mQWN0aXZlVXNlcnN9fSBvZiB7e3RvdGFsTm9PZlB1cmNoYXNlc319IFVzZXJzIGFzc2lnbmVkPC9zcGFuPjxicj5cbiAgICAgICAgICAgIDxzcGFuPkF1dG9tYXRpY2FsbHkgcmVuZXdzIG9uIHt7cmVuZXdhbERhdGUgfCBkYXRlfX0uIDxhIChjbGljayk9XCJjYW5jZWxTdWJzY3JpcHRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyOyBjb2xvcjogIzMzN2FiNyAhaW1wb3J0YW50OyB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsgXCI+Q2FuY2VsXG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbjwvYT48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjMwXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiByaWdodDtcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtMDUgbXQtMDVcIiAqbmdJZj1cIiFpc0NhbmNlbGxlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInB1cmNoYXNlTW9yZUxpY2Vuc2VzKClcIj5cbiAgICAgICAgICAgICAgICBQdXJjaGFzZSBtb3JlIGxpY2Vuc2VzXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwibWwtMDUgbXQtMDVcIiAqbmdJZj1cIiFpc0NhbmNlbGxlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9QbGFucygpXCI+XG4gICAgICAgICAgICAgICAgQ2hhbmdlIFBsYW5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IGZpdC1jb250ZW50O2JvcmRlcjogMXB4IHNvbGlkICNlY2VhZWE7bWFyZ2luOiAwO3BhZGRpbmc6IDBweCAxMHB4IDBweCAxMHB4O1wiIGZ4TGF5b3V0PVwicm93XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGhpc3Rvcnkgb2YgcGF5bWVudEhpc3RvcnlcIj5cbiAgICAgICAgPGRpdiBmeEZsZXg9XCI3MFwiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHggIWltcG9ydGFudDtcIj5cbiAgICAgICAgICAgIDx0YWJsZSBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxuICAgICAgICAgICAgICAgIDx0ciBmeExheW91dD1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtd2VpZ2h0OiBib2xkO1wiPlN1YnNjcmlwdGlvbiB0ZXJtIDoge3toaXN0b3J5LnN0YXJ0VGltZSB8IGRhdGV9fSB0b1xuICAgICAgICAgICAgICAgICAgICAgICAge3toaXN0b3J5LmVuZFRpbWUgfCBkYXRlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHIgZnhMYXlvdXQ9XCJyb3dcIiAqbmdJZj1cIiFoaXN0b3J5LmlzVXBkYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmeEZsZXg9XCI4MFwiPjxzcGFuPnt7aGlzdG9yeS5wdXJjaGFzZVR5cGV9fSAoe3toaXN0b3J5Lm5vb2ZwdXJjaGFzZWRsaWNlbmNlc319IFVzZXJzIEluY2x1ZGVkKTxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaWxsZWQgZXZlcnkge3toaXN0b3J5LnN1YnNjcmlwdGlvblR5cGV9fSA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmeEZsZXg9XCIyMFwiPiDCo3t7aGlzdG9yeS50b3RhbEFtb3VudFBhaWR9fTwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHIgZnhMYXlvdXQ9XCJyb3dcIiAqbmdJZj1cImhpc3RvcnkuaXNVcGRhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZ4RmxleD1cIjgwXCI+PHNwYW4+e3toaXN0b3J5LnB1cmNoYXNlVHlwZX19ICh7e2hpc3Rvcnkub3JpZ2luYWxQdXJjaGFzZXN9fSBVc2VycyBJbmNsdWRlZClcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZ4RmxleD1cIjIwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICDCo3t7aGlzdG9yeS50b3RhbEFtb3VudFBhaWQgLyBoaXN0b3J5Lm5vb2ZwdXJjaGFzZWRsaWNlbmNlcyAqIGhpc3Rvcnkub3JpZ2luYWxQdXJjaGFzZXMgfX08L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgPHRyIGZ4TGF5b3V0PVwicm93XCIgKm5nSWY9XCJoaXN0b3J5LmlzVXBkYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmeEZsZXg9XCI4MFwiPjxzcGFuPnt7aGlzdG9yeS5wdXJjaGFzZVR5cGV9fSBBZGRpdGlvbmFsIFVzZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHt7aGlzdG9yeS5ub29mcHVyY2hhc2VkbGljZW5jZXMgLSBoaXN0b3J5Lm9yaWdpbmFsUHVyY2hhc2VzfX0gVXNlcnMpPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgZnhGbGV4PVwiMjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIMKje3toaXN0b3J5LnRvdGFsQW1vdW50UGFpZCAvIGhpc3Rvcnkubm9vZnB1cmNoYXNlZGxpY2VuY2VzICogKCBoaXN0b3J5Lm5vb2ZwdXJjaGFzZWRsaWNlbmNlcyAtIGhpc3Rvcnkub3JpZ2luYWxQdXJjaGFzZXMpfX1cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgIDx0ciBmeExheW91dD1cInJvd1wiICpuZ0lmPVwiaGlzdG9yeS5pc1VwZGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8dGQgZnhGbGV4PVwiODBcIj57e2hpc3RvcnkucHVyY2hhc2VUeXBlfX0gVG90YWwgKHt7aGlzdG9yeS5ub29mcHVyY2hhc2VkbGljZW5jZXN9fSBVc2Vycyk8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIj4gQmlsbGVkIGV2ZXJ5IHt7aGlzdG9yeS5zdWJzY3JpcHRpb25UeXBlfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBmeEZsZXg9XCIyMFwiPiDCo3t7aGlzdG9yeS50b3RhbEFtb3VudFBhaWR9fTwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICA8dHIgKm5nSWY9XCJoaXN0b3J5LmlzQ2FuY2VsbGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPlN1YnNjcmlwdGlvbiB3YXMgY2FuY2VsbGVkIGF0IHt7aGlzdG9yeS5jYW5jZWxsZWREYXRlIHwgZGF0ZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3RhYmxlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9tYXQtY2FyZD5cbjxzYXQtcG9wb3ZlciAjZmVlZFRpbWVTaGVldCBbYXV0b0ZvY3VzXT1cImZhbHNlXCIgaGFzQmFja2Ryb3AgYmFja2Ryb3BDbGFzcz1cImJhY2tkcm9wLWNvbG9yXCIgW3Jlc3RvcmVGb2N1c109XCJmYWxzZVwiXG4gICAgW2ludGVyYWN0aXZlQ2xvc2VdPVwiZmFsc2VcIiBzY3JvbGxTdHJhdGVneT1cInJlcG9zaXRpb25cIiB2ZXJ0aWNhbEFsaWduPVwiYmVsb3dcIiBob3Jpem9udGFsQWxpZ249XCJiZWZvcmVcIj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJmaWx0ZXItZGF0YSBwLTBcIiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDE1MHB4O1wiPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tZGlhbG9nXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWNsb3NlIG1sLWxnLW40IG10LTAgbXQtbGctbjQgbWwtbjMgXCIgbWF0LWRpYWxvZy1jbG9zZSAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgIDxmYS1pY29uIGljb249XCJ0aW1lc1wiIGNsYXNzPVwicHJvamVjdC1kaWFsb2dcIj48L2ZhLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZS10ZXh0IG1hdC1iZy1wcmltYXJ5IHAtMDUgbWItMVwiPlxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cIm10LTA1XCI+IEN1c3RvbWl6ZSBzaXRlPC9oND5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XG4gICAgICAgIDxtYXQtY2FyZC1jb250ZW50IGNsYXNzPVwiY2FyZC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjEwMFwiIGNsYXNzPVwibXQtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgIElmIHRoZXJlIGlzIG5lZWQgdG8gY3VzdG9taXplIHRoZSBzaXRlLCB0aGVuIHBsZWFzZSBjYWxsIDAwNDQtNzk0NDE0NDk0NC5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPCEtLSA8ZGl2IGZ4RmxleD1cIjEwMFwiIGNsYXNzPVwibXQtMlwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJtci0xXCIgY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwic3VibWl0XCI+XG4gICAgICAgICAgICAgICAgICAgIE5vXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICA8L21hdC1jYXJkPlxuPC9zYXQtcG9wb3Zlcj4iXX0=
|