@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,113 +1,113 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as signalR from "@microsoft/signalr";
|
|
3
|
-
import { LocalStorageProperties } from '../../globaldependencies/constants/localstorage-properties';
|
|
4
|
-
import { BehaviorSubject } from 'rxjs';
|
|
5
|
-
import { HttpHeaders } from '@angular/common/http';
|
|
6
|
-
import { map } from 'rxjs/operators';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "ngx-cookie-service";
|
|
9
|
-
import * as i2 from "@angular/common/http";
|
|
10
|
-
export class SignalrService {
|
|
11
|
-
constructor(cookieService, http) {
|
|
12
|
-
this.cookieService = cookieService;
|
|
13
|
-
this.http = http;
|
|
14
|
-
this.notifications$ = new BehaviorSubject([]);
|
|
15
|
-
this.notifications = [];
|
|
16
|
-
}
|
|
17
|
-
initializeSignalRConnection() {
|
|
18
|
-
// this.connection = $.hubConnection(`${environment.apiURL}signalr`, { useDefaultPath: false });
|
|
19
|
-
// // Please note that by default '/signalr' URL will be used to connect to your SignalR service. Providing 'useDefaultPath' allows you to customize it
|
|
20
|
-
// this.proxy = this.connection.createHubProxy('LookupSyncNotification');
|
|
21
|
-
// this.proxy.on('LookupSyncSuccess', (serverMessage) => this.onMessageReceived(serverMessage));
|
|
22
|
-
// this.connection.start().done((data: any) => {
|
|
23
|
-
// console.log('Connected to Connection Hub');
|
|
24
|
-
// this.sendMessage();
|
|
25
|
-
// }).catch((error: any) => {
|
|
26
|
-
// console.log('Connection Hub error:' + error);
|
|
27
|
-
// });
|
|
28
|
-
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
29
|
-
let APIEndpoint = environment.notificationUrl;
|
|
30
|
-
let connection = new signalR.HubConnectionBuilder()
|
|
31
|
-
.withUrl(APIEndpoint, {
|
|
32
|
-
skipNegotiation: true,
|
|
33
|
-
transport: signalR.HttpTransportType.WebSockets,
|
|
34
|
-
accessTokenFactory: () => "Bearer " + this.cookieService.get(LocalStorageProperties.CurrentUser)
|
|
35
|
-
})
|
|
36
|
-
.withAutomaticReconnect()
|
|
37
|
-
.build();
|
|
38
|
-
connection.start().then(function () {
|
|
39
|
-
console.log("connected signalr hub");
|
|
40
|
-
connection.invoke('GetConnectionId', sessionStorage.getItem('conectionId'))
|
|
41
|
-
.then((res) => { sessionStorage.setItem('conectionId', res); })
|
|
42
|
-
.catch((error) => {
|
|
43
|
-
console.log(error);
|
|
44
|
-
});
|
|
45
|
-
}).catch(function (er) {
|
|
46
|
-
console.log("hub con error: " + er);
|
|
47
|
-
});
|
|
48
|
-
connection.on('BroadCastNotification', (serverMessage) => this.addToNotificationItem(serverMessage));
|
|
49
|
-
}
|
|
50
|
-
// public sendMessage(): void {
|
|
51
|
-
// connection.invoke('ClientMessage', 'My message')
|
|
52
|
-
// .catch((error: any) => {
|
|
53
|
-
// console.log('sending message error -> ' + error);
|
|
54
|
-
// });
|
|
55
|
-
// }
|
|
56
|
-
onMessageReceived(serverMessage) {
|
|
57
|
-
console.log('New message received from Server: ' + serverMessage);
|
|
58
|
-
}
|
|
59
|
-
getNotifications() {
|
|
60
|
-
this.notifications$.next(this.notifications);
|
|
61
|
-
}
|
|
62
|
-
addToNotificationItem(item) {
|
|
63
|
-
this.notifications.push(item);
|
|
64
|
-
this.getNotifications();
|
|
65
|
-
}
|
|
66
|
-
addToNotificationList(item) {
|
|
67
|
-
this.notifications.push(...item);
|
|
68
|
-
this.getNotifications();
|
|
69
|
-
}
|
|
70
|
-
removeItemFromNotifications(id) {
|
|
71
|
-
this.notifications = this.notifications.filter(item => item.id != id);
|
|
72
|
-
this.getNotifications();
|
|
73
|
-
}
|
|
74
|
-
removeAllNotifications() {
|
|
75
|
-
this.notifications = [];
|
|
76
|
-
this.getNotifications();
|
|
77
|
-
}
|
|
78
|
-
upsertReadNewNotifications(notifications) {
|
|
79
|
-
const httpOptions = {
|
|
80
|
-
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
|
|
81
|
-
};
|
|
82
|
-
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
83
|
-
let APIEndpoint = environment.apiURL;
|
|
84
|
-
let body = JSON.stringify(notifications);
|
|
85
|
-
return this.http.post(APIEndpoint + "Notification/NotificationApi/UpsertReadNewNotifications", body, httpOptions)
|
|
86
|
-
.pipe(map(result => {
|
|
87
|
-
return result;
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
getNotificationsFromApi() {
|
|
91
|
-
const httpOptions = {
|
|
92
|
-
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
|
|
93
|
-
};
|
|
94
|
-
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
95
|
-
let APIEndpoint = environment.apiURL;
|
|
96
|
-
return this.http.post(APIEndpoint + "Notification/NotificationApi/GetNotifications", null, httpOptions)
|
|
97
|
-
.pipe(map((result) => {
|
|
98
|
-
if (result.success && result.data && result.data.length > 0) {
|
|
99
|
-
this.notifications = result.data;
|
|
100
|
-
this.getNotifications();
|
|
101
|
-
}
|
|
102
|
-
}));
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
SignalrService.ɵfac = function SignalrService_Factory(t) { return new (t || SignalrService)(i0.ɵɵinject(i1.CookieService), i0.ɵɵinject(i2.HttpClient)); };
|
|
106
|
-
SignalrService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SignalrService, factory: SignalrService.ɵfac, providedIn: 'root' });
|
|
107
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignalrService, [{
|
|
108
|
-
type: Injectable,
|
|
109
|
-
args: [{
|
|
110
|
-
providedIn: 'root'
|
|
111
|
-
}]
|
|
112
|
-
}], function () { return [{ type: i1.CookieService }, { type: i2.HttpClient }]; }, null); })();
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvc2VydmljZXMvc2lnbmFsci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFRckMsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBb0IsYUFBNEIsRUFBVSxJQUFnQjtRQUF0RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFGbkUsbUJBQWMsR0FBUSxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxrQkFBYSxHQUFRLEVBQUUsQ0FBQztJQUNzRCxDQUFDO0lBRXhFLDJCQUEyQjtRQUM5QixvR0FBb0c7UUFDcEcsdUpBQXVKO1FBQ3ZKLDZFQUE2RTtRQUU3RSxvR0FBb0c7UUFFcEcsb0RBQW9EO1FBQ3BELG9EQUFvRDtRQUNwRCw0QkFBNEI7UUFDNUIsaUNBQWlDO1FBQ2pDLHNEQUFzRDtRQUN0RCxVQUFVO1FBQ1YsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxXQUFXLEdBQUcs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SCxDQUFDOzs0RUE3R1EsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGWCxNQUFNO3VGQUVULGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdWJDb25uZWN0aW9uLCBIdWJDb25uZWN0aW9uQnVpbGRlciwgTG9nTGV2ZWwgfSBmcm9tICdAbWljcm9zb2Z0L3NpZ25hbHInXHJcbmltcG9ydCAqIGFzIHNpZ25hbFIgZnJvbSBcIkBtaWNyb3NvZnQvc2lnbmFsclwiO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9jb25zdGFudHMvbG9jYWxzdG9yYWdlLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvTm90aWZpY2F0aW9uc091dFB1dE1vZGVsJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuLy8gaW1wb3J0IHsgTWVzc2FnZVBhY2tIdWJQcm90b2NvbCB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFsci1wcm90b2NvbC1tc2dwYWNrJ1xyXG5cclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTaWduYWxyU2VydmljZSB7XHJcblxyXG4gICAgcHJpdmF0ZSBjb25uZWN0aW9uOiBhbnk7XHJcbiAgICBwcml2YXRlIHByb3h5OiBhbnk7XHJcbiAgICBwdWJsaWMgbm90aWZpY2F0aW9ucyQ6IGFueSA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG4gICAgbm90aWZpY2F0aW9uczogYW55ID0gW107XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvb2tpZVNlcnZpY2U6IENvb2tpZVNlcnZpY2UsIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gICAgcHVibGljIGluaXRpYWxpemVTaWduYWxSQ29ubmVjdGlvbigpOiB2b2lkIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5jb25uZWN0aW9uID0gJC5odWJDb25uZWN0aW9uKGAke2Vudmlyb25tZW50LmFwaVVSTH1zaWduYWxyYCwgeyB1c2VEZWZhdWx0UGF0aDogZmFsc2UgfSk7XHJcbiAgICAgICAgLy8gLy8gUGxlYXNlIG5vdGUgdGhhdCBieSBkZWZhdWx0ICcvc2lnbmFscicgVVJMIHdpbGwgYmUgdXNlZCB0byBjb25uZWN0IHRvIHlvdXIgU2lnbmFsUiBzZXJ2aWNlLiBQcm92aWRpbmcgJ3VzZURlZmF1bHRQYXRoJyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSBpdFxyXG4gICAgICAgIC8vICAgICB0aGlzLnByb3h5ID0gdGhpcy5jb25uZWN0aW9uLmNyZWF0ZUh1YlByb3h5KCdMb29rdXBTeW5jTm90aWZpY2F0aW9uJyk7XHJcblxyXG4gICAgICAgIC8vICAgICB0aGlzLnByb3h5Lm9uKCdMb29rdXBTeW5jU3VjY2VzcycsIChzZXJ2ZXJNZXNzYWdlKSA9PiB0aGlzLm9uTWVzc2FnZVJlY2VpdmVkKHNlcnZlck1lc3NhZ2UpKTtcclxuXHJcbiAgICAgICAgLy8gICAgIHRoaXMuY29ubmVjdGlvbi5zdGFydCgpLmRvbmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vICAgICAgIGNvbnNvbGUubG9nKCdDb25uZWN0ZWQgdG8gQ29ubmVjdGlvbiBIdWInKTtcclxuICAgICAgICAvLyAgICAgICB0aGlzLnNlbmRNZXNzYWdlKCk7XHJcbiAgICAgICAgLy8gICAgIH0pLmNhdGNoKChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgY29uc29sZS5sb2coJ0Nvbm5lY3Rpb24gSHViIGVycm9yOicgKyBlcnJvcik7XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG4gICAgICAgIGxldCBlbnZpcm9ubWVudCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlUHJvcGVydGllcy5FbnZpcm9ubWVudCkpO1xyXG5cdFx0bGV0IEFQSUVuZHBvaW50ID0gZW52aXJvbm1lbnQubm90aWZpY2F0aW9uVXJsO1xyXG4gICAgICAgIGxldCBjb25uZWN0aW9uID0gbmV3IHNpZ25hbFIuSHViQ29ubmVjdGlvbkJ1aWxkZXIoKVxyXG4gICAgICAgICAgICAud2l0aFVybChBUElFbmRwb2ludCwge1xyXG4gICAgICAgICAgICAgICAgc2tpcE5lZ290aWF0aW9uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHMsXHJcbiAgICAgICAgICAgICAgICBhY2Nlc3NUb2tlbkZhY3Rvcnk6ICgpID0+IFwiQmVhcmVyIFwiICsgdGhpcy5jb29raWVTZXJ2aWNlLmdldChMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkN1cnJlbnRVc2VyKVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdCgpXHJcbiAgICAgICAgICAgIC5idWlsZCgpO1xyXG4gICAgICAgIGNvbm5lY3Rpb24uc3RhcnQoKS50aGVuKFxyXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvbm5lY3RlZCBzaWduYWxyIGh1YlwiKTtcclxuICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24uaW52b2tlKCdHZXRDb25uZWN0aW9uSWQnLCBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdjb25lY3Rpb25JZCcpKVxyXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXMpID0+ICB7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY29uZWN0aW9uSWQnLCByZXMpfSlcclxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKS5jYXRjaChcclxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcikge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaHViIGNvbiBlcnJvcjogXCIgKyBlcik7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgY29ubmVjdGlvbi5vbignQnJvYWRDYXN0Tm90aWZpY2F0aW9uJywgKHNlcnZlck1lc3NhZ2UpID0+IHRoaXMuYWRkVG9Ob3RpZmljYXRpb25JdGVtKHNlcnZlck1lc3NhZ2UpKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyAgIHB1YmxpYyBzZW5kTWVzc2FnZSgpOiB2b2lkIHtcclxuICAgIC8vICAgICBjb25uZWN0aW9uLmludm9rZSgnQ2xpZW50TWVzc2FnZScsICdNeSBtZXNzYWdlJylcclxuICAgIC8vICAgICAgIC5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgLy8gICAgICAgICBjb25zb2xlLmxvZygnc2VuZGluZyBtZXNzYWdlIGVycm9yIC0+ICcgKyBlcnJvcik7XHJcbiAgICAvLyAgICAgICB9KTtcclxuICAgIC8vICAgfVxyXG5cclxuICAgIHByaXZhdGUgb25NZXNzYWdlUmVjZWl2ZWQoc2VydmVyTWVzc2FnZTogYW55KSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ05ldyBtZXNzYWdlIHJlY2VpdmVkIGZyb20gU2VydmVyOiAnICsgc2VydmVyTWVzc2FnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0Tm90aWZpY2F0aW9ucygpIHtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMkLm5leHQodGhpcy5ub3RpZmljYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRUb05vdGlmaWNhdGlvbkl0ZW0oaXRlbSkge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFRvTm90aWZpY2F0aW9uTGlzdChpdGVtKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnB1c2goLi4uaXRlbSk7XHJcbiAgICAgICAgdGhpcy5nZXROb3RpZmljYXRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlSXRlbUZyb21Ob3RpZmljYXRpb25zKGlkKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gdGhpcy5ub3RpZmljYXRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT0gaWQpO1xyXG4gICAgICAgIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUFsbE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5nZXROb3RpZmljYXRpb25zKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBzZXJ0UmVhZE5ld05vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uTW9kZWxbXSkge1xyXG4gICAgICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG5cdFx0XHRoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXHJcblx0XHQgIH07XHJcblx0XHRsZXQgZW52aXJvbm1lbnQgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuRW52aXJvbm1lbnQpKTtcclxuXHRcdGxldCBBUElFbmRwb2ludCA9IGVudmlyb25tZW50LmFwaVVSTDtcclxuXHRcdGxldCBib2R5ID0gSlNPTi5zdHJpbmdpZnkobm90aWZpY2F0aW9ucyk7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJRW5kcG9pbnQgKyBcIk5vdGlmaWNhdGlvbi9Ob3RpZmljYXRpb25BcGkvVXBzZXJ0UmVhZE5ld05vdGlmaWNhdGlvbnNcIixib2R5LCBodHRwT3B0aW9ucylcclxuXHRcdFx0LnBpcGUobWFwKHJlc3VsdCA9PiB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcclxuXHRcdFx0fSkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE5vdGlmaWNhdGlvbnNGcm9tQXBpKCkge1xyXG4gICAgICAgIGNvbnN0IGh0dHBPcHRpb25zID0ge1xyXG5cdFx0XHRoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXHJcblx0XHQgIH07XHJcblx0XHRsZXQgZW52aXJvbm1lbnQgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuRW52aXJvbm1lbnQpKTtcclxuXHRcdGxldCBBUElFbmRwb2ludCA9IGVudmlyb25tZW50LmFwaVVSTDtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdChBUElFbmRwb2ludCArIFwiTm90aWZpY2F0aW9uL05vdGlmaWNhdGlvbkFwaS9HZXROb3RpZmljYXRpb25zXCIsIG51bGwsIGh0dHBPcHRpb25zKVxyXG5cdFx0XHQucGlwZShtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcblx0XHRcdFx0aWYocmVzdWx0LnN1Y2Nlc3MgJiYgcmVzdWx0LmRhdGEgJiYgcmVzdWx0LmRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9ucyA9IHJlc3VsdC5kYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cdFx0XHR9KSk7ICAgXHJcbiAgICB9XHJcblxyXG59Il19
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as signalR from "@microsoft/signalr";
|
|
3
|
+
import { LocalStorageProperties } from '../../globaldependencies/constants/localstorage-properties';
|
|
4
|
+
import { BehaviorSubject } from 'rxjs';
|
|
5
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
6
|
+
import { map } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "ngx-cookie-service";
|
|
9
|
+
import * as i2 from "@angular/common/http";
|
|
10
|
+
export class SignalrService {
|
|
11
|
+
constructor(cookieService, http) {
|
|
12
|
+
this.cookieService = cookieService;
|
|
13
|
+
this.http = http;
|
|
14
|
+
this.notifications$ = new BehaviorSubject([]);
|
|
15
|
+
this.notifications = [];
|
|
16
|
+
}
|
|
17
|
+
initializeSignalRConnection() {
|
|
18
|
+
// this.connection = $.hubConnection(`${environment.apiURL}signalr`, { useDefaultPath: false });
|
|
19
|
+
// // Please note that by default '/signalr' URL will be used to connect to your SignalR service. Providing 'useDefaultPath' allows you to customize it
|
|
20
|
+
// this.proxy = this.connection.createHubProxy('LookupSyncNotification');
|
|
21
|
+
// this.proxy.on('LookupSyncSuccess', (serverMessage) => this.onMessageReceived(serverMessage));
|
|
22
|
+
// this.connection.start().done((data: any) => {
|
|
23
|
+
// console.log('Connected to Connection Hub');
|
|
24
|
+
// this.sendMessage();
|
|
25
|
+
// }).catch((error: any) => {
|
|
26
|
+
// console.log('Connection Hub error:' + error);
|
|
27
|
+
// });
|
|
28
|
+
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
29
|
+
let APIEndpoint = environment.notificationUrl;
|
|
30
|
+
let connection = new signalR.HubConnectionBuilder()
|
|
31
|
+
.withUrl(APIEndpoint, {
|
|
32
|
+
skipNegotiation: true,
|
|
33
|
+
transport: signalR.HttpTransportType.WebSockets,
|
|
34
|
+
accessTokenFactory: () => "Bearer " + this.cookieService.get(LocalStorageProperties.CurrentUser)
|
|
35
|
+
})
|
|
36
|
+
.withAutomaticReconnect()
|
|
37
|
+
.build();
|
|
38
|
+
connection.start().then(function () {
|
|
39
|
+
console.log("connected signalr hub");
|
|
40
|
+
connection.invoke('GetConnectionId', sessionStorage.getItem('conectionId'))
|
|
41
|
+
.then((res) => { sessionStorage.setItem('conectionId', res); })
|
|
42
|
+
.catch((error) => {
|
|
43
|
+
console.log(error);
|
|
44
|
+
});
|
|
45
|
+
}).catch(function (er) {
|
|
46
|
+
console.log("hub con error: " + er);
|
|
47
|
+
});
|
|
48
|
+
connection.on('BroadCastNotification', (serverMessage) => this.addToNotificationItem(serverMessage));
|
|
49
|
+
}
|
|
50
|
+
// public sendMessage(): void {
|
|
51
|
+
// connection.invoke('ClientMessage', 'My message')
|
|
52
|
+
// .catch((error: any) => {
|
|
53
|
+
// console.log('sending message error -> ' + error);
|
|
54
|
+
// });
|
|
55
|
+
// }
|
|
56
|
+
onMessageReceived(serverMessage) {
|
|
57
|
+
console.log('New message received from Server: ' + serverMessage);
|
|
58
|
+
}
|
|
59
|
+
getNotifications() {
|
|
60
|
+
this.notifications$.next(this.notifications);
|
|
61
|
+
}
|
|
62
|
+
addToNotificationItem(item) {
|
|
63
|
+
this.notifications.push(item);
|
|
64
|
+
this.getNotifications();
|
|
65
|
+
}
|
|
66
|
+
addToNotificationList(item) {
|
|
67
|
+
this.notifications.push(...item);
|
|
68
|
+
this.getNotifications();
|
|
69
|
+
}
|
|
70
|
+
removeItemFromNotifications(id) {
|
|
71
|
+
this.notifications = this.notifications.filter(item => item.id != id);
|
|
72
|
+
this.getNotifications();
|
|
73
|
+
}
|
|
74
|
+
removeAllNotifications() {
|
|
75
|
+
this.notifications = [];
|
|
76
|
+
this.getNotifications();
|
|
77
|
+
}
|
|
78
|
+
upsertReadNewNotifications(notifications) {
|
|
79
|
+
const httpOptions = {
|
|
80
|
+
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
|
|
81
|
+
};
|
|
82
|
+
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
83
|
+
let APIEndpoint = environment.apiURL;
|
|
84
|
+
let body = JSON.stringify(notifications);
|
|
85
|
+
return this.http.post(APIEndpoint + "Notification/NotificationApi/UpsertReadNewNotifications", body, httpOptions)
|
|
86
|
+
.pipe(map(result => {
|
|
87
|
+
return result;
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
getNotificationsFromApi() {
|
|
91
|
+
const httpOptions = {
|
|
92
|
+
headers: new HttpHeaders({ 'Content-Type': 'application/json' })
|
|
93
|
+
};
|
|
94
|
+
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
95
|
+
let APIEndpoint = environment.apiURL;
|
|
96
|
+
return this.http.post(APIEndpoint + "Notification/NotificationApi/GetNotifications", null, httpOptions)
|
|
97
|
+
.pipe(map((result) => {
|
|
98
|
+
if (result.success && result.data && result.data.length > 0) {
|
|
99
|
+
this.notifications = result.data;
|
|
100
|
+
this.getNotifications();
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
SignalrService.ɵfac = function SignalrService_Factory(t) { return new (t || SignalrService)(i0.ɵɵinject(i1.CookieService), i0.ɵɵinject(i2.HttpClient)); };
|
|
106
|
+
SignalrService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SignalrService, factory: SignalrService.ɵfac, providedIn: 'root' });
|
|
107
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignalrService, [{
|
|
108
|
+
type: Injectable,
|
|
109
|
+
args: [{
|
|
110
|
+
providedIn: 'root'
|
|
111
|
+
}]
|
|
112
|
+
}], function () { return [{ type: i1.CookieService }, { type: i2.HttpClient }]; }, null); })();
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvc2VydmljZXMvc2lnbmFsci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxvQkFBb0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFRckMsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBb0IsYUFBNEIsRUFBVSxJQUFnQjtRQUF0RCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVk7UUFGbkUsbUJBQWMsR0FBUSxJQUFJLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyRCxrQkFBYSxHQUFRLEVBQUUsQ0FBQztJQUNzRCxDQUFDO0lBRXhFLDJCQUEyQjtRQUM5QixvR0FBb0c7UUFDcEcsdUpBQXVKO1FBQ3ZKLDZFQUE2RTtRQUU3RSxvR0FBb0c7UUFFcEcsb0RBQW9EO1FBQ3BELG9EQUFvRDtRQUNwRCw0QkFBNEI7UUFDNUIsaUNBQWlDO1FBQ2pDLHNEQUFzRDtRQUN0RCxVQUFVO1FBQ1YsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxXQUFXLEdBQUcs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SCxDQUFDOzs0RUE3R1EsY0FBYztvRUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFGWCxNQUFNO3VGQUVULGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNSLFVBQVUsRUFBRSxNQUFNO2FBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHViQ29ubmVjdGlvbiwgSHViQ29ubmVjdGlvbkJ1aWxkZXIsIExvZ0xldmVsIH0gZnJvbSAnQG1pY3Jvc29mdC9zaWduYWxyJ1xuaW1wb3J0ICogYXMgc2lnbmFsUiBmcm9tIFwiQG1pY3Jvc29mdC9zaWduYWxyXCI7XG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSAnbmd4LWNvb2tpZS1zZXJ2aWNlJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvY29uc3RhbnRzL2xvY2Fsc3RvcmFnZS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvTm90aWZpY2F0aW9uc091dFB1dE1vZGVsJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuLy8gaW1wb3J0IHsgTWVzc2FnZVBhY2tIdWJQcm90b2NvbCB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFsci1wcm90b2NvbC1tc2dwYWNrJ1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2lnbmFsclNlcnZpY2Uge1xuXG4gICAgcHJpdmF0ZSBjb25uZWN0aW9uOiBhbnk7XG4gICAgcHJpdmF0ZSBwcm94eTogYW55O1xuICAgIHB1YmxpYyBub3RpZmljYXRpb25zJDogYW55ID0gbmV3IEJlaGF2aW9yU3ViamVjdChbXSk7XG4gICAgbm90aWZpY2F0aW9uczogYW55ID0gW107XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLCBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHsgfVxuXG4gICAgcHVibGljIGluaXRpYWxpemVTaWduYWxSQ29ubmVjdGlvbigpOiB2b2lkIHtcbiAgICAgICAgLy8gICAgIHRoaXMuY29ubmVjdGlvbiA9ICQuaHViQ29ubmVjdGlvbihgJHtlbnZpcm9ubWVudC5hcGlVUkx9c2lnbmFscmAsIHsgdXNlRGVmYXVsdFBhdGg6IGZhbHNlIH0pO1xuICAgICAgICAvLyAvLyBQbGVhc2Ugbm90ZSB0aGF0IGJ5IGRlZmF1bHQgJy9zaWduYWxyJyBVUkwgd2lsbCBiZSB1c2VkIHRvIGNvbm5lY3QgdG8geW91ciBTaWduYWxSIHNlcnZpY2UuIFByb3ZpZGluZyAndXNlRGVmYXVsdFBhdGgnIGFsbG93cyB5b3UgdG8gY3VzdG9taXplIGl0XG4gICAgICAgIC8vICAgICB0aGlzLnByb3h5ID0gdGhpcy5jb25uZWN0aW9uLmNyZWF0ZUh1YlByb3h5KCdMb29rdXBTeW5jTm90aWZpY2F0aW9uJyk7XG5cbiAgICAgICAgLy8gICAgIHRoaXMucHJveHkub24oJ0xvb2t1cFN5bmNTdWNjZXNzJywgKHNlcnZlck1lc3NhZ2UpID0+IHRoaXMub25NZXNzYWdlUmVjZWl2ZWQoc2VydmVyTWVzc2FnZSkpO1xuXG4gICAgICAgIC8vICAgICB0aGlzLmNvbm5lY3Rpb24uc3RhcnQoKS5kb25lKChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgLy8gICAgICAgY29uc29sZS5sb2coJ0Nvbm5lY3RlZCB0byBDb25uZWN0aW9uIEh1YicpO1xuICAgICAgICAvLyAgICAgICB0aGlzLnNlbmRNZXNzYWdlKCk7XG4gICAgICAgIC8vICAgICB9KS5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAvLyAgICAgICBjb25zb2xlLmxvZygnQ29ubmVjdGlvbiBIdWIgZXJyb3I6JyArIGVycm9yKTtcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICBsZXQgZW52aXJvbm1lbnQgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuRW52aXJvbm1lbnQpKTtcblx0XHRsZXQgQVBJRW5kcG9pbnQgPSBlbnZpcm9ubWVudC5ub3RpZmljYXRpb25Vcmw7XG4gICAgICAgIGxldCBjb25uZWN0aW9uID0gbmV3IHNpZ25hbFIuSHViQ29ubmVjdGlvbkJ1aWxkZXIoKVxuICAgICAgICAgICAgLndpdGhVcmwoQVBJRW5kcG9pbnQsIHtcbiAgICAgICAgICAgICAgICBza2lwTmVnb3RpYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgdHJhbnNwb3J0OiBzaWduYWxSLkh0dHBUcmFuc3BvcnRUeXBlLldlYlNvY2tldHMsXG4gICAgICAgICAgICAgICAgYWNjZXNzVG9rZW5GYWN0b3J5OiAoKSA9PiBcIkJlYXJlciBcIiArIHRoaXMuY29va2llU2VydmljZS5nZXQoTG9jYWxTdG9yYWdlUHJvcGVydGllcy5DdXJyZW50VXNlcilcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAud2l0aEF1dG9tYXRpY1JlY29ubmVjdCgpXG4gICAgICAgICAgICAuYnVpbGQoKTtcbiAgICAgICAgY29ubmVjdGlvbi5zdGFydCgpLnRoZW4oXG4gICAgICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjb25uZWN0ZWQgc2lnbmFsciBodWJcIik7XG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbi5pbnZva2UoJ0dldENvbm5lY3Rpb25JZCcsIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2NvbmVjdGlvbklkJykpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChyZXMpID0+ICB7c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnY29uZWN0aW9uSWQnLCByZXMpfSlcbiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICApLmNhdGNoKFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlcikge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImh1YiBjb24gZXJyb3I6IFwiICsgZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIGNvbm5lY3Rpb24ub24oJ0Jyb2FkQ2FzdE5vdGlmaWNhdGlvbicsIChzZXJ2ZXJNZXNzYWdlKSA9PiB0aGlzLmFkZFRvTm90aWZpY2F0aW9uSXRlbShzZXJ2ZXJNZXNzYWdlKSk7XG4gICAgfVxuXG4gICAgLy8gICBwdWJsaWMgc2VuZE1lc3NhZ2UoKTogdm9pZCB7XG4gICAgLy8gICAgIGNvbm5lY3Rpb24uaW52b2tlKCdDbGllbnRNZXNzYWdlJywgJ015IG1lc3NhZ2UnKVxuICAgIC8vICAgICAgIC5jYXRjaCgoZXJyb3I6IGFueSkgPT4ge1xuICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ3NlbmRpbmcgbWVzc2FnZSBlcnJvciAtPiAnICsgZXJyb3IpO1xuICAgIC8vICAgICAgIH0pO1xuICAgIC8vICAgfVxuXG4gICAgcHJpdmF0ZSBvbk1lc3NhZ2VSZWNlaXZlZChzZXJ2ZXJNZXNzYWdlOiBhbnkpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05ldyBtZXNzYWdlIHJlY2VpdmVkIGZyb20gU2VydmVyOiAnICsgc2VydmVyTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgZ2V0Tm90aWZpY2F0aW9ucygpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zJC5uZXh0KHRoaXMubm90aWZpY2F0aW9ucyk7XG4gICAgfVxuXG4gICAgYWRkVG9Ob3RpZmljYXRpb25JdGVtKGl0ZW0pIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnB1c2goaXRlbSk7XG4gICAgICAgIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucygpO1xuICAgIH1cblxuICAgIGFkZFRvTm90aWZpY2F0aW9uTGlzdChpdGVtKSB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5wdXNoKC4uLml0ZW0pO1xuICAgICAgICB0aGlzLmdldE5vdGlmaWNhdGlvbnMoKTtcbiAgICB9XG5cbiAgICByZW1vdmVJdGVtRnJvbU5vdGlmaWNhdGlvbnMoaWQpIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gdGhpcy5ub3RpZmljYXRpb25zLmZpbHRlcihpdGVtID0+IGl0ZW0uaWQgIT0gaWQpO1xuICAgICAgICB0aGlzLmdldE5vdGlmaWNhdGlvbnMoKTtcbiAgICB9XG5cbiAgICByZW1vdmVBbGxOb3RpZmljYXRpb25zKCkge1xuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5nZXROb3RpZmljYXRpb25zKCk7XG4gICAgfVxuXG4gICAgdXBzZXJ0UmVhZE5ld05vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uczogTm90aWZpY2F0aW9uTW9kZWxbXSkge1xuICAgICAgICBjb25zdCBodHRwT3B0aW9ucyA9IHtcblx0XHRcdGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSlcblx0XHQgIH07XG5cdFx0bGV0IGVudmlyb25tZW50ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkVudmlyb25tZW50KSk7XG5cdFx0bGV0IEFQSUVuZHBvaW50ID0gZW52aXJvbm1lbnQuYXBpVVJMO1xuXHRcdGxldCBib2R5ID0gSlNPTi5zdHJpbmdpZnkobm90aWZpY2F0aW9ucyk7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cC5wb3N0KEFQSUVuZHBvaW50ICsgXCJOb3RpZmljYXRpb24vTm90aWZpY2F0aW9uQXBpL1Vwc2VydFJlYWROZXdOb3RpZmljYXRpb25zXCIsYm9keSwgaHR0cE9wdGlvbnMpXG5cdFx0XHQucGlwZShtYXAocmVzdWx0ID0+IHtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdH0pKTtcbiAgICB9XG5cbiAgICBnZXROb3RpZmljYXRpb25zRnJvbUFwaSgpIHtcbiAgICAgICAgY29uc3QgaHR0cE9wdGlvbnMgPSB7XG5cdFx0XHRoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG5cdFx0ICB9O1xuXHRcdGxldCBlbnZpcm9ubWVudCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlUHJvcGVydGllcy5FbnZpcm9ubWVudCkpO1xuXHRcdGxldCBBUElFbmRwb2ludCA9IGVudmlyb25tZW50LmFwaVVSTDtcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoQVBJRW5kcG9pbnQgKyBcIk5vdGlmaWNhdGlvbi9Ob3RpZmljYXRpb25BcGkvR2V0Tm90aWZpY2F0aW9uc1wiLCBudWxsLCBodHRwT3B0aW9ucylcblx0XHRcdC5waXBlKG1hcCgocmVzdWx0OiBhbnkpID0+IHtcblx0XHRcdFx0aWYocmVzdWx0LnN1Y2Nlc3MgJiYgcmVzdWx0LmRhdGEgJiYgcmVzdWx0LmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSByZXN1bHQuZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXROb3RpZmljYXRpb25zKCk7XG4gICAgICAgICAgICAgICAgfVxuXHRcdFx0fSkpOyAgIFxuICAgIH1cblxufSJdfQ==
|