@thetradeengineorg1/snova-shell-module 0.0.260 → 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 -18874
- 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 -126
- 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 -2342
- 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 +16979 -16979
- 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-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,56 +1,56 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
import { Effect } from "@ngrx/effects";
|
|
4
|
-
import { map, tap } from "rxjs/operators";
|
|
5
|
-
import { ValidationActionTypes } from "../actions/notification-validator.action";
|
|
6
|
-
import { LocalStorageProperties } from '../../../globaldependencies/constants/localstorage-properties';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@ngrx/effects";
|
|
9
|
-
import * as i2 from "ngx-toastr";
|
|
10
|
-
import * as i3 from "@ngrx/store";
|
|
11
|
-
import * as i4 from "../../../globaldependencies/pipes/softlabels.pipes";
|
|
12
|
-
export class NotificationValidatorEffects {
|
|
13
|
-
constructor(actions, toastr, store, softLabelPipe) {
|
|
14
|
-
this.actions = actions;
|
|
15
|
-
this.toastr = toastr;
|
|
16
|
-
this.store = store;
|
|
17
|
-
this.softLabelPipe = softLabelPipe;
|
|
18
|
-
this.showException = this.actions
|
|
19
|
-
.ofType(ValidationActionTypes.ShowExceptionMessages)
|
|
20
|
-
.pipe(map((action) => action.payload), tap(payload => {
|
|
21
|
-
if (payload != null && payload.message != null) {
|
|
22
|
-
if ((typeof (payload.message)) === 'string') {
|
|
23
|
-
if (payload.message.indexOf('401').valueOf() < 0)
|
|
24
|
-
this.toastr.error("", payload.message);
|
|
25
|
-
}
|
|
26
|
-
if ((typeof (payload.message)) === 'object') {
|
|
27
|
-
if (payload.message.status != 401)
|
|
28
|
-
this.toastr.error("", payload.message.message);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}));
|
|
32
|
-
this.showValidation = this.actions
|
|
33
|
-
.ofType(ValidationActionTypes.ShowValidationMessages)
|
|
34
|
-
.pipe(map((action) => action.payload.validationMessages), tap(validationMessages => {
|
|
35
|
-
if (validationMessages != null) {
|
|
36
|
-
validationMessages.forEach(value => {
|
|
37
|
-
let message = this.softLabelPipe.transform(value.message, this.softLabel);
|
|
38
|
-
this.toastr.error("", message);
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}));
|
|
42
|
-
this.softLabel = JSON.parse(localStorage.getItem(LocalStorageProperties.SoftLabels));
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
NotificationValidatorEffects.ɵfac = function NotificationValidatorEffects_Factory(t) { return new (t || NotificationValidatorEffects)(i0.ɵɵinject(i1.Actions), i0.ɵɵinject(i2.ToastrService), i0.ɵɵinject(i3.Store), i0.ɵɵinject(i4.SoftLabelPipe)); };
|
|
46
|
-
NotificationValidatorEffects.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NotificationValidatorEffects, factory: NotificationValidatorEffects.ɵfac });
|
|
47
|
-
__decorate([
|
|
48
|
-
Effect({ dispatch: false })
|
|
49
|
-
], NotificationValidatorEffects.prototype, "showException", void 0);
|
|
50
|
-
__decorate([
|
|
51
|
-
Effect({ dispatch: false })
|
|
52
|
-
], NotificationValidatorEffects.prototype, "showValidation", void 0);
|
|
53
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NotificationValidatorEffects, [{
|
|
54
|
-
type: Injectable
|
|
55
|
-
}], function () { return [{ type: i1.Actions }, { type: i2.ToastrService }, { type: i3.Store }, { type: i4.SoftLabelPipe }]; }, { showException: [], showValidation: [] }); })();
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
import { Effect } from "@ngrx/effects";
|
|
4
|
+
import { map, tap } from "rxjs/operators";
|
|
5
|
+
import { ValidationActionTypes } from "../actions/notification-validator.action";
|
|
6
|
+
import { LocalStorageProperties } from '../../../globaldependencies/constants/localstorage-properties';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ngrx/effects";
|
|
9
|
+
import * as i2 from "ngx-toastr";
|
|
10
|
+
import * as i3 from "@ngrx/store";
|
|
11
|
+
import * as i4 from "../../../globaldependencies/pipes/softlabels.pipes";
|
|
12
|
+
export class NotificationValidatorEffects {
|
|
13
|
+
constructor(actions, toastr, store, softLabelPipe) {
|
|
14
|
+
this.actions = actions;
|
|
15
|
+
this.toastr = toastr;
|
|
16
|
+
this.store = store;
|
|
17
|
+
this.softLabelPipe = softLabelPipe;
|
|
18
|
+
this.showException = this.actions
|
|
19
|
+
.ofType(ValidationActionTypes.ShowExceptionMessages)
|
|
20
|
+
.pipe(map((action) => action.payload), tap(payload => {
|
|
21
|
+
if (payload != null && payload.message != null) {
|
|
22
|
+
if ((typeof (payload.message)) === 'string') {
|
|
23
|
+
if (payload.message.indexOf('401').valueOf() < 0)
|
|
24
|
+
this.toastr.error("", payload.message);
|
|
25
|
+
}
|
|
26
|
+
if ((typeof (payload.message)) === 'object') {
|
|
27
|
+
if (payload.message.status != 401)
|
|
28
|
+
this.toastr.error("", payload.message.message);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}));
|
|
32
|
+
this.showValidation = this.actions
|
|
33
|
+
.ofType(ValidationActionTypes.ShowValidationMessages)
|
|
34
|
+
.pipe(map((action) => action.payload.validationMessages), tap(validationMessages => {
|
|
35
|
+
if (validationMessages != null) {
|
|
36
|
+
validationMessages.forEach(value => {
|
|
37
|
+
let message = this.softLabelPipe.transform(value.message, this.softLabel);
|
|
38
|
+
this.toastr.error("", message);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
this.softLabel = JSON.parse(localStorage.getItem(LocalStorageProperties.SoftLabels));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
NotificationValidatorEffects.ɵfac = function NotificationValidatorEffects_Factory(t) { return new (t || NotificationValidatorEffects)(i0.ɵɵinject(i1.Actions), i0.ɵɵinject(i2.ToastrService), i0.ɵɵinject(i3.Store), i0.ɵɵinject(i4.SoftLabelPipe)); };
|
|
46
|
+
NotificationValidatorEffects.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NotificationValidatorEffects, factory: NotificationValidatorEffects.ɵfac });
|
|
47
|
+
__decorate([
|
|
48
|
+
Effect({ dispatch: false })
|
|
49
|
+
], NotificationValidatorEffects.prototype, "showException", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
Effect({ dispatch: false })
|
|
52
|
+
], NotificationValidatorEffects.prototype, "showValidation", void 0);
|
|
53
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NotificationValidatorEffects, [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}], function () { return [{ type: i1.Actions }, { type: i2.ToastrService }, { type: i3.Store }, { type: i4.SoftLabelPipe }]; }, { showException: [], showValidation: [] }); })();
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXZhbGlkYXRvci5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvc3RvcmUvZWZmZWN0cy9ub3RpZmljYXRpb24tdmFsaWRhdG9yLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQVMsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBaUQsTUFBTSwwQ0FBMEMsQ0FBQztBQUtoSSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQzs7Ozs7O0FBSXZHLE1BQU0sT0FBTyw0QkFBNEI7SUF5Q3ZDLFlBQW9CLE9BQWdCLEVBQVUsTUFBcUIsRUFBVSxLQUFtQixFQUFVLGFBQTRCO1FBQWxILFlBQU8sR0FBUCxPQUFPLENBQVM7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEN0SSxrQkFBYSxHQUFvQixJQUFJLENBQUMsT0FBTzthQUMxQyxNQUFNLENBQXdCLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDO2FBQzFFLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxNQUE2QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQ3RELEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNaLElBQUksT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRTtnQkFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7b0JBQzNDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQzt3QkFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtpQkFDekM7Z0JBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxRQUFRLEVBQUU7b0JBQzNDLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksR0FBRzt3QkFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7aUJBQ2pEO2FBQ0Y7UUFDSCxDQUFDLENBQ0EsQ0FDRixDQUFDO1FBR0osbUJBQWMsR0FBb0IsSUFBSSxDQUFDLE9BQU87YUFDM0MsTUFBTSxDQUF5QixxQkFBcUIsQ0FBQyxzQkFBc0IsQ0FBQzthQUM1RSxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsTUFBOEIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUMxRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUN2QixJQUFJLGtCQUFrQixJQUFJLElBQUksRUFBRTtnQkFDOUIsa0JBQWtCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNqQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztvQkFDMUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO2dCQUNoQyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUNBLENBQ0YsQ0FBQztRQUdGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFDdEYsQ0FBQzs7d0dBM0NVLDRCQUE0QjtrRkFBNUIsNEJBQTRCLFdBQTVCLDRCQUE0QjtBQUt2QztJQURDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQzttRUFtQnhCO0FBR0o7SUFEQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7b0VBY3hCO3VGQXZDTyw0QkFBNEI7Y0FEeEMsVUFBVTtzSUFNVCxhQUFhLE1BcUJiLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFjdGlvbnMsIEVmZmVjdCB9IGZyb20gXCJAbmdyeC9lZmZlY3RzXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IGRlbGF5LCBtYXAsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgVmFsaWRhdGlvbkFjdGlvblR5cGVzLCBTaG93RXhjZXB0aW9uTWVzc2FnZXMsIFNob3dWYWxpZGF0aW9uTWVzc2FnZXMgfSBmcm9tIFwiLi4vYWN0aW9ucy9ub3RpZmljYXRpb24tdmFsaWRhdG9yLmFjdGlvblwiO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gXCIuLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleFwiO1xuaW1wb3J0IHsgU29mdExhYmVsUGlwZSB9IGZyb20gJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9waXBlcy9zb2Z0bGFiZWxzLnBpcGVzJztcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvY29uc3RhbnRzL2xvY2Fsc3RvcmFnZS1wcm9wZXJ0aWVzJztcbmltcG9ydCB7IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zb2Z0bGFiZWxzLW1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvblZhbGlkYXRvckVmZmVjdHMge1xuICBzb2Z0TGFiZWxzJDogT2JzZXJ2YWJsZTxTb2Z0TGFiZWxDb25maWd1cmF0aW9uTW9kZWxbXT47XG4gIHNvZnRMYWJlbDogU29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsW107XG5cbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxuICBzaG93RXhjZXB0aW9uOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmFjdGlvbnNcbiAgICAub2ZUeXBlPFNob3dFeGNlcHRpb25NZXNzYWdlcz4oVmFsaWRhdGlvbkFjdGlvblR5cGVzLlNob3dFeGNlcHRpb25NZXNzYWdlcylcbiAgICAucGlwZShcbiAgICAgIG1hcCgoYWN0aW9uOiBTaG93RXhjZXB0aW9uTWVzc2FnZXMpID0+IGFjdGlvbi5wYXlsb2FkKSxcbiAgICAgIHRhcChwYXlsb2FkID0+IHtcbiAgICAgICAgaWYgKHBheWxvYWQgIT0gbnVsbCAmJiBwYXlsb2FkLm1lc3NhZ2UgIT0gbnVsbCkge1xuICAgICAgICAgIGlmICgodHlwZW9mIChwYXlsb2FkLm1lc3NhZ2UpKSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmIChwYXlsb2FkLm1lc3NhZ2UuaW5kZXhPZignNDAxJykudmFsdWVPZigpIDwgMClcbiAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoXCJcIiwgcGF5bG9hZC5tZXNzYWdlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICgodHlwZW9mIChwYXlsb2FkLm1lc3NhZ2UpKSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIGlmIChwYXlsb2FkLm1lc3NhZ2Uuc3RhdHVzICE9IDQwMSlcbiAgICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoXCJcIiwgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2UpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICApLFxuICAgICk7XG5cbiAgQEVmZmVjdCh7IGRpc3BhdGNoOiBmYWxzZSB9KVxuICBzaG93VmFsaWRhdGlvbjogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5hY3Rpb25zXG4gICAgLm9mVHlwZTxTaG93VmFsaWRhdGlvbk1lc3NhZ2VzPihWYWxpZGF0aW9uQWN0aW9uVHlwZXMuU2hvd1ZhbGlkYXRpb25NZXNzYWdlcylcbiAgICAucGlwZShcbiAgICAgIG1hcCgoYWN0aW9uOiBTaG93VmFsaWRhdGlvbk1lc3NhZ2VzKSA9PiBhY3Rpb24ucGF5bG9hZC52YWxpZGF0aW9uTWVzc2FnZXMpLFxuICAgICAgdGFwKHZhbGlkYXRpb25NZXNzYWdlcyA9PiB7XG4gICAgICAgIGlmICh2YWxpZGF0aW9uTWVzc2FnZXMgIT0gbnVsbCkge1xuICAgICAgICAgIHZhbGlkYXRpb25NZXNzYWdlcy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgICAgIGxldCBtZXNzYWdlID0gdGhpcy5zb2Z0TGFiZWxQaXBlLnRyYW5zZm9ybSh2YWx1ZS5tZXNzYWdlLCB0aGlzLnNvZnRMYWJlbCk7XG4gICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihcIlwiLCBtZXNzYWdlKVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICApLFxuICAgICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3Rpb25zOiBBY3Rpb25zLCBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSwgcHJpdmF0ZSBzdG9yZTogU3RvcmU8U3RhdGU+LCBwcml2YXRlIHNvZnRMYWJlbFBpcGU6IFNvZnRMYWJlbFBpcGUpIHtcbiAgICB0aGlzLnNvZnRMYWJlbCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Tb2Z0TGFiZWxzKSlcbiAgfVxufSJdfQ==
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Effect, ofType } from "@ngrx/effects";
|
|
3
|
-
import { Injectable } from "@angular/core";
|
|
4
|
-
import { pipe, of } from "rxjs";
|
|
5
|
-
import { switchMap, map, catchError } from "rxjs/operators";
|
|
6
|
-
import { NotificationsActionTypes, ClearAllUnreadNotificationsCompleted, ClearAllUnreadNotificationsFailed, ExceptionHandled, UpsertUnreadNotificationsCompleted, UpsertUnreadNotificationsFailed } from "../actions/notifications.actions";
|
|
7
|
-
import { ShowValidationMessages, ShowExceptionMessages } from "../actions/notification-validator.action";
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "@ngrx/effects";
|
|
10
|
-
import * as i2 from "../../services/feature.service";
|
|
11
|
-
import * as i3 from "@ngx-translate/core";
|
|
12
|
-
export class NotificationEffect {
|
|
13
|
-
constructor(actions$, menuItemService, translateService) {
|
|
14
|
-
this.actions$ = actions$;
|
|
15
|
-
this.menuItemService = menuItemService;
|
|
16
|
-
this.translateService = translateService;
|
|
17
|
-
this.loadNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearAllUnreadNotificationsTriggered), switchMap(searchAction => {
|
|
18
|
-
{
|
|
19
|
-
return this.menuItemService.getAllNotifications(searchAction.notification)
|
|
20
|
-
.pipe(map((notifications) => {
|
|
21
|
-
if (notifications.success) {
|
|
22
|
-
return new ClearAllUnreadNotificationsCompleted(notifications.data);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
return new ClearAllUnreadNotificationsFailed(notifications.apiResponseMessages);
|
|
26
|
-
}
|
|
27
|
-
}), catchError(err => {
|
|
28
|
-
return of(new ExceptionHandled(err));
|
|
29
|
-
}));
|
|
30
|
-
}
|
|
31
|
-
}));
|
|
32
|
-
this.loadAllNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearUnreadNotificationsTriggered), switchMap(searchAction => {
|
|
33
|
-
{
|
|
34
|
-
return this.menuItemService.getAllNotifications(searchAction.notification)
|
|
35
|
-
.pipe(map((notifications) => {
|
|
36
|
-
if (notifications.success) {
|
|
37
|
-
return new ClearAllUnreadNotificationsCompleted(notifications.data);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
return new ClearAllUnreadNotificationsFailed(notifications.apiResponseMessages);
|
|
41
|
-
}
|
|
42
|
-
}), catchError(err => {
|
|
43
|
-
return of(new ExceptionHandled(err));
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
}));
|
|
47
|
-
this.showValidationMessagesForProjectList$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearAllUnreadNotificationsFailed), switchMap(searchAction => {
|
|
48
|
-
return of(new ShowValidationMessages({
|
|
49
|
-
validationMessages: searchAction.validationMessages,
|
|
50
|
-
}));
|
|
51
|
-
}));
|
|
52
|
-
this.exceptionHandled$ = this.actions$.pipe(ofType(NotificationsActionTypes.ExceptionHandled), switchMap(searchAction => {
|
|
53
|
-
return of(new ShowExceptionMessages({
|
|
54
|
-
message: searchAction.errorMessage, // TODO: Change to proper toast message
|
|
55
|
-
}));
|
|
56
|
-
}));
|
|
57
|
-
this.UpsertUnreadNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.UpsertUnreadNotificationsTriggered), switchMap(UpsertReadNotificationsTriggeredAction => {
|
|
58
|
-
return this.menuItemService
|
|
59
|
-
.upsertNotificationReadStatus(UpsertReadNotificationsTriggeredAction.upsertNotification)
|
|
60
|
-
.pipe(map((notificationId) => {
|
|
61
|
-
return new UpsertUnreadNotificationsCompleted(UpsertReadNotificationsTriggeredAction.upsertNotification[0].notificationId);
|
|
62
|
-
}), catchError(error => {
|
|
63
|
-
this.exceptionMessage = error;
|
|
64
|
-
return of(new ExceptionHandled(error));
|
|
65
|
-
}));
|
|
66
|
-
}));
|
|
67
|
-
this.showValidationMessagesForCanteenFoodItem$ = this.actions$.pipe(ofType(NotificationsActionTypes.UpsertUnreadNotificationsFailed), pipe(map(() => {
|
|
68
|
-
return new ShowValidationMessages({
|
|
69
|
-
validationMessages: this.validationMessages, // TODO: Change to proper toast message
|
|
70
|
-
});
|
|
71
|
-
})));
|
|
72
|
-
this.ClearAllUnreadNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearAllNotifications), switchMap(UpsertReadNotificationsTriggeredAction => {
|
|
73
|
-
return this.menuItemService
|
|
74
|
-
.upsertNotificationReadStatus(UpsertReadNotificationsTriggeredAction.readNotifications)
|
|
75
|
-
.pipe(map((notificationId) => {
|
|
76
|
-
if (notificationId.success === true) {
|
|
77
|
-
return new UpsertUnreadNotificationsCompleted(UpsertReadNotificationsTriggeredAction.readNotifications[0].notificationId);
|
|
78
|
-
}
|
|
79
|
-
else {
|
|
80
|
-
this.validationMessages = notificationId.apiResponseMessages;
|
|
81
|
-
return new UpsertUnreadNotificationsFailed(notificationId.apiResponseMessages);
|
|
82
|
-
}
|
|
83
|
-
}), catchError(error => {
|
|
84
|
-
this.exceptionMessage = error;
|
|
85
|
-
return of(new ExceptionHandled(error));
|
|
86
|
-
}));
|
|
87
|
-
}));
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
NotificationEffect.ɵfac = function NotificationEffect_Factory(t) { return new (t || NotificationEffect)(i0.ɵɵinject(i1.Actions), i0.ɵɵinject(i2.MenuItemService), i0.ɵɵinject(i3.TranslateService)); };
|
|
91
|
-
NotificationEffect.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NotificationEffect, factory: NotificationEffect.ɵfac });
|
|
92
|
-
__decorate([
|
|
93
|
-
Effect()
|
|
94
|
-
], NotificationEffect.prototype, "loadNotifications$", void 0);
|
|
95
|
-
__decorate([
|
|
96
|
-
Effect()
|
|
97
|
-
], NotificationEffect.prototype, "loadAllNotifications$", void 0);
|
|
98
|
-
__decorate([
|
|
99
|
-
Effect()
|
|
100
|
-
], NotificationEffect.prototype, "showValidationMessagesForProjectList$", void 0);
|
|
101
|
-
__decorate([
|
|
102
|
-
Effect()
|
|
103
|
-
], NotificationEffect.prototype, "exceptionHandled$", void 0);
|
|
104
|
-
__decorate([
|
|
105
|
-
Effect()
|
|
106
|
-
], NotificationEffect.prototype, "UpsertUnreadNotifications$", void 0);
|
|
107
|
-
__decorate([
|
|
108
|
-
Effect()
|
|
109
|
-
], NotificationEffect.prototype, "showValidationMessagesForCanteenFoodItem$", void 0);
|
|
110
|
-
__decorate([
|
|
111
|
-
Effect()
|
|
112
|
-
], NotificationEffect.prototype, "ClearAllUnreadNotifications$", void 0);
|
|
113
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NotificationEffect, [{
|
|
114
|
-
type: Injectable
|
|
115
|
-
}], function () { return [{ type: i1.Actions }, { type: i2.MenuItemService }, { type: i3.TranslateService }]; }, { loadNotifications$: [], loadAllNotifications$: [], showValidationMessagesForProjectList$: [], exceptionHandled$: [], UpsertUnreadNotifications$: [], showValidationMessagesForCanteenFoodItem$: [], ClearAllUnreadNotifications$: [] }); })();
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvc3RvcmUvZWZmZWN0cy9ub3RpZmljYXRpb25zLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBVyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUF3Qyx3QkFBd0IsRUFBRSxvQ0FBb0MsRUFBRSxpQ0FBaUMsRUFBRSxnQkFBZ0IsRUFBc0Msa0NBQWtDLEVBQUUsK0JBQStCLEVBQTRELE1BQU0sa0NBQWtDLENBQUM7QUFFaFgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBR3pHLE1BQU0sT0FBTyxrQkFBa0I7SUF3STdCLFlBQ1UsUUFBaUIsRUFDakIsZUFBZ0MsRUFDaEMsZ0JBQWtDO1FBRmxDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF0STVDLHVCQUFrQixHQUF1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDekQsTUFBTSxDQUF1Qyx3QkFBd0IsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUMzRyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkI7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsZUFB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LENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQU9FLENBQUM7O29GQTVJTSxrQkFBa0I7d0VBQWxCLGtCQUFrQixXQUFsQixrQkFBa0I7QUFLN0I7SUFEQyxNQUFNLEVBQUU7OERBcUJQO0FBR0Y7SUFEQyxNQUFNLEVBQUU7aUVBcUJQO0FBSUY7SUFEQyxNQUFNLEVBQUU7aUZBYVA7QUFJRjtJQURDLE1BQU0sRUFBRTs2REFhUDtBQUdGO0lBREMsTUFBTSxFQUFFO3NFQWdCUDtBQUdGO0lBREMsTUFBTSxFQUFFO3FGQVVQO0FBR0Y7SUFEQyxNQUFNLEVBQUU7d0VBcUJQO3VGQXJJUyxrQkFBa0I7Y0FEOUIsVUFBVTt1SEFNVCxrQkFBa0IsTUF1QmxCLHFCQUFxQixNQXdCckIscUNBQXFDLE1BZ0JyQyxpQkFBaUIsTUFlakIsMEJBQTBCLE1Ba0IxQix5Q0FBeUMsTUFZekMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9ucywgRWZmZWN0LCBvZlR5cGUgfSBmcm9tIFwiQG5ncngvZWZmZWN0c1wiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcclxuaW1wb3J0IHsgc3dpdGNoTWFwLCBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZCwgTm90aWZpY2F0aW9uc0FjdGlvblR5cGVzLCBDbGVhckFsbFVucmVhZE5vdGlmaWNhdGlvbnNDb21wbGV0ZWQsIENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZCwgRXhjZXB0aW9uSGFuZGxlZCwgVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZCwgVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc0NvbXBsZXRlZCwgVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZCwgQ2xlYXJBbGxOb3RpZmljYXRpb25zLCBDbGVhclVucmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWQgfSBmcm9tIFwiLi4vYWN0aW9ucy9ub3RpZmljYXRpb25zLmFjdGlvbnNcIjtcclxuaW1wb3J0IHsgTWVudUl0ZW1TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2ZlYXR1cmUuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaG93VmFsaWRhdGlvbk1lc3NhZ2VzLCBTaG93RXhjZXB0aW9uTWVzc2FnZXMgfSBmcm9tIFwiLi4vYWN0aW9ucy9ub3RpZmljYXRpb24tdmFsaWRhdG9yLmFjdGlvblwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uRWZmZWN0IHtcclxuICB2YWxpZGF0aW9uTWVzc2FnZXM6IGFueVtdO1xyXG4gIGV4Y2VwdGlvbk1lc3NhZ2U6IGFueTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgbG9hZE5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8Q2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkPihOb3RpZmljYXRpb25zQWN0aW9uVHlwZXMuQ2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkKSxcclxuICAgIHN3aXRjaE1hcChzZWFyY2hBY3Rpb24gPT4ge1xyXG4gICAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWVudUl0ZW1TZXJ2aWNlLmdldEFsbE5vdGlmaWNhdGlvbnMoc2VhcmNoQWN0aW9uLm5vdGlmaWNhdGlvbilcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKG5vdGlmaWNhdGlvbnM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChub3RpZmljYXRpb25zLnN1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zQ29tcGxldGVkKG5vdGlmaWNhdGlvbnMuZGF0YSlcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZChub3RpZmljYXRpb25zLmFwaVJlc3BvbnNlTWVzc2FnZXMpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gb2YobmV3IEV4Y2VwdGlvbkhhbmRsZWQoZXJyKSk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIGxvYWRBbGxOb3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPENsZWFyVW5yZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZD4oTm90aWZpY2F0aW9uc0FjdGlvblR5cGVzLkNsZWFyVW5yZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZCksXHJcbiAgICBzd2l0Y2hNYXAoc2VhcmNoQWN0aW9uID0+IHtcclxuICAgICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1lbnVJdGVtU2VydmljZS5nZXRBbGxOb3RpZmljYXRpb25zKHNlYXJjaEFjdGlvbi5ub3RpZmljYXRpb24pXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKChub3RpZmljYXRpb25zOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAobm90aWZpY2F0aW9ucy5zdWNjZXNzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc0NvbXBsZXRlZChub3RpZmljYXRpb25zLmRhdGEpXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDbGVhckFsbFVucmVhZE5vdGlmaWNhdGlvbnNGYWlsZWQobm90aWZpY2F0aW9ucy5hcGlSZXNwb25zZU1lc3NhZ2VzKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ldyBFeGNlcHRpb25IYW5kbGVkKGVycikpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICApO1xyXG5cclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgc2hvd1ZhbGlkYXRpb25NZXNzYWdlc0ZvclByb2plY3RMaXN0JDogT2JzZXJ2YWJsZTxcclxuICAgIEFjdGlvblxyXG4gID4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8Q2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zRmFpbGVkPihcclxuICAgICAgTm90aWZpY2F0aW9uc0FjdGlvblR5cGVzLkNsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZFxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcChzZWFyY2hBY3Rpb24gPT4ge1xyXG4gICAgICByZXR1cm4gb2YobmV3IFNob3dWYWxpZGF0aW9uTWVzc2FnZXMoe1xyXG4gICAgICAgIHZhbGlkYXRpb25NZXNzYWdlczogc2VhcmNoQWN0aW9uLnZhbGlkYXRpb25NZXNzYWdlcyxcclxuICAgICAgfSlcclxuICAgICAgKVxyXG4gICAgfSlcclxuICApO1xyXG5cclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgZXhjZXB0aW9uSGFuZGxlZCQ6IE9ic2VydmFibGU8XHJcbiAgICBBY3Rpb25cclxuICA+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxyXG4gICAgb2ZUeXBlPEV4Y2VwdGlvbkhhbmRsZWQ+KFxyXG4gICAgICBOb3RpZmljYXRpb25zQWN0aW9uVHlwZXMuRXhjZXB0aW9uSGFuZGxlZFxyXG4gICAgKSxcclxuICAgIHN3aXRjaE1hcChzZWFyY2hBY3Rpb24gPT4ge1xyXG4gICAgICByZXR1cm4gb2YobmV3IFNob3dFeGNlcHRpb25NZXNzYWdlcyh7XHJcbiAgICAgICAgbWVzc2FnZTogc2VhcmNoQWN0aW9uLmVycm9yTWVzc2FnZSwgLy8gVE9ETzogQ2hhbmdlIHRvIHByb3BlciB0b2FzdCBtZXNzYWdlXHJcbiAgICAgIH0pXHJcbiAgICAgIClcclxuICAgIH0pXHJcbiAgKTtcclxuXHJcbiAgQEVmZmVjdCgpXHJcbiAgVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9ucyQ6IE9ic2VydmFibGU8QWN0aW9uPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcclxuICAgIG9mVHlwZTxVcHNlcnRVbnJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkPihOb3RpZmljYXRpb25zQWN0aW9uVHlwZXMuVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZCksXHJcbiAgICBzd2l0Y2hNYXAoVXBzZXJ0UmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWRBY3Rpb24gPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5tZW51SXRlbVNlcnZpY2VcclxuICAgICAgICAudXBzZXJ0Tm90aWZpY2F0aW9uUmVhZFN0YXR1cyhVcHNlcnRSZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZEFjdGlvbi51cHNlcnROb3RpZmljYXRpb24pXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKG5vdGlmaWNhdGlvbklkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBVcHNlcnRVbnJlYWROb3RpZmljYXRpb25zQ29tcGxldGVkKFVwc2VydFJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkQWN0aW9uLnVwc2VydE5vdGlmaWNhdGlvblswXS5ub3RpZmljYXRpb25JZCk7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmV4Y2VwdGlvbk1lc3NhZ2UgPSBlcnJvcjtcclxuICAgICAgICAgICAgcmV0dXJuIG9mKG5ldyBFeGNlcHRpb25IYW5kbGVkKGVycm9yKSk7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9KVxyXG4gICk7XHJcblxyXG4gIEBFZmZlY3QoKVxyXG4gIHNob3dWYWxpZGF0aW9uTWVzc2FnZXNGb3JDYW50ZWVuRm9vZEl0ZW0kOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8VXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZD4oTm90aWZpY2F0aW9uc0FjdGlvblR5cGVzLlVwc2VydFVucmVhZE5vdGlmaWNhdGlvbnNGYWlsZWQpLFxyXG4gICAgcGlwZShcclxuICAgICAgbWFwKCgpID0+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFNob3dWYWxpZGF0aW9uTWVzc2FnZXMoe1xyXG4gICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcywgLy8gVE9ETzogQ2hhbmdlIHRvIHByb3BlciB0b2FzdCBtZXNzYWdlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgIClcclxuICApO1xyXG5cclxuICBARWZmZWN0KClcclxuICBDbGVhckFsbFVucmVhZE5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXHJcbiAgICBvZlR5cGU8Q2xlYXJBbGxOb3RpZmljYXRpb25zPihOb3RpZmljYXRpb25zQWN0aW9uVHlwZXMuQ2xlYXJBbGxOb3RpZmljYXRpb25zKSxcclxuICAgIHN3aXRjaE1hcChVcHNlcnRSZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZEFjdGlvbiA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1lbnVJdGVtU2VydmljZVxyXG4gICAgICAgIC51cHNlcnROb3RpZmljYXRpb25SZWFkU3RhdHVzKFVwc2VydFJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkQWN0aW9uLnJlYWROb3RpZmljYXRpb25zKVxyXG4gICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgbWFwKChub3RpZmljYXRpb25JZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChub3RpZmljYXRpb25JZC5zdWNjZXNzID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVcHNlcnRVbnJlYWROb3RpZmljYXRpb25zQ29tcGxldGVkKFVwc2VydFJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkQWN0aW9uLnJlYWROb3RpZmljYXRpb25zWzBdLm5vdGlmaWNhdGlvbklkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcyA9IG5vdGlmaWNhdGlvbklkLmFwaVJlc3BvbnNlTWVzc2FnZXNcclxuICAgICAgICAgICAgICByZXR1cm4gbmV3IFVwc2VydFVucmVhZE5vdGlmaWNhdGlvbnNGYWlsZWQobm90aWZpY2F0aW9uSWQuYXBpUmVzcG9uc2VNZXNzYWdlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZXhjZXB0aW9uTWVzc2FnZSA9IGVycm9yO1xyXG4gICAgICAgICAgICByZXR1cm4gb2YobmV3IEV4Y2VwdGlvbkhhbmRsZWQoZXJyb3IpKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH0pXHJcbiAgKTtcclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9ucyxcclxuICAgIHByaXZhdGUgbWVudUl0ZW1TZXJ2aWNlOiBNZW51SXRlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Effect, ofType } from "@ngrx/effects";
|
|
3
|
+
import { Injectable } from "@angular/core";
|
|
4
|
+
import { pipe, of } from "rxjs";
|
|
5
|
+
import { switchMap, map, catchError } from "rxjs/operators";
|
|
6
|
+
import { NotificationsActionTypes, ClearAllUnreadNotificationsCompleted, ClearAllUnreadNotificationsFailed, ExceptionHandled, UpsertUnreadNotificationsCompleted, UpsertUnreadNotificationsFailed } from "../actions/notifications.actions";
|
|
7
|
+
import { ShowValidationMessages, ShowExceptionMessages } from "../actions/notification-validator.action";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@ngrx/effects";
|
|
10
|
+
import * as i2 from "../../services/feature.service";
|
|
11
|
+
import * as i3 from "@ngx-translate/core";
|
|
12
|
+
export class NotificationEffect {
|
|
13
|
+
constructor(actions$, menuItemService, translateService) {
|
|
14
|
+
this.actions$ = actions$;
|
|
15
|
+
this.menuItemService = menuItemService;
|
|
16
|
+
this.translateService = translateService;
|
|
17
|
+
this.loadNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearAllUnreadNotificationsTriggered), switchMap(searchAction => {
|
|
18
|
+
{
|
|
19
|
+
return this.menuItemService.getAllNotifications(searchAction.notification)
|
|
20
|
+
.pipe(map((notifications) => {
|
|
21
|
+
if (notifications.success) {
|
|
22
|
+
return new ClearAllUnreadNotificationsCompleted(notifications.data);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return new ClearAllUnreadNotificationsFailed(notifications.apiResponseMessages);
|
|
26
|
+
}
|
|
27
|
+
}), catchError(err => {
|
|
28
|
+
return of(new ExceptionHandled(err));
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
}));
|
|
32
|
+
this.loadAllNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearUnreadNotificationsTriggered), switchMap(searchAction => {
|
|
33
|
+
{
|
|
34
|
+
return this.menuItemService.getAllNotifications(searchAction.notification)
|
|
35
|
+
.pipe(map((notifications) => {
|
|
36
|
+
if (notifications.success) {
|
|
37
|
+
return new ClearAllUnreadNotificationsCompleted(notifications.data);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return new ClearAllUnreadNotificationsFailed(notifications.apiResponseMessages);
|
|
41
|
+
}
|
|
42
|
+
}), catchError(err => {
|
|
43
|
+
return of(new ExceptionHandled(err));
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
}));
|
|
47
|
+
this.showValidationMessagesForProjectList$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearAllUnreadNotificationsFailed), switchMap(searchAction => {
|
|
48
|
+
return of(new ShowValidationMessages({
|
|
49
|
+
validationMessages: searchAction.validationMessages,
|
|
50
|
+
}));
|
|
51
|
+
}));
|
|
52
|
+
this.exceptionHandled$ = this.actions$.pipe(ofType(NotificationsActionTypes.ExceptionHandled), switchMap(searchAction => {
|
|
53
|
+
return of(new ShowExceptionMessages({
|
|
54
|
+
message: searchAction.errorMessage, // TODO: Change to proper toast message
|
|
55
|
+
}));
|
|
56
|
+
}));
|
|
57
|
+
this.UpsertUnreadNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.UpsertUnreadNotificationsTriggered), switchMap(UpsertReadNotificationsTriggeredAction => {
|
|
58
|
+
return this.menuItemService
|
|
59
|
+
.upsertNotificationReadStatus(UpsertReadNotificationsTriggeredAction.upsertNotification)
|
|
60
|
+
.pipe(map((notificationId) => {
|
|
61
|
+
return new UpsertUnreadNotificationsCompleted(UpsertReadNotificationsTriggeredAction.upsertNotification[0].notificationId);
|
|
62
|
+
}), catchError(error => {
|
|
63
|
+
this.exceptionMessage = error;
|
|
64
|
+
return of(new ExceptionHandled(error));
|
|
65
|
+
}));
|
|
66
|
+
}));
|
|
67
|
+
this.showValidationMessagesForCanteenFoodItem$ = this.actions$.pipe(ofType(NotificationsActionTypes.UpsertUnreadNotificationsFailed), pipe(map(() => {
|
|
68
|
+
return new ShowValidationMessages({
|
|
69
|
+
validationMessages: this.validationMessages, // TODO: Change to proper toast message
|
|
70
|
+
});
|
|
71
|
+
})));
|
|
72
|
+
this.ClearAllUnreadNotifications$ = this.actions$.pipe(ofType(NotificationsActionTypes.ClearAllNotifications), switchMap(UpsertReadNotificationsTriggeredAction => {
|
|
73
|
+
return this.menuItemService
|
|
74
|
+
.upsertNotificationReadStatus(UpsertReadNotificationsTriggeredAction.readNotifications)
|
|
75
|
+
.pipe(map((notificationId) => {
|
|
76
|
+
if (notificationId.success === true) {
|
|
77
|
+
return new UpsertUnreadNotificationsCompleted(UpsertReadNotificationsTriggeredAction.readNotifications[0].notificationId);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
this.validationMessages = notificationId.apiResponseMessages;
|
|
81
|
+
return new UpsertUnreadNotificationsFailed(notificationId.apiResponseMessages);
|
|
82
|
+
}
|
|
83
|
+
}), catchError(error => {
|
|
84
|
+
this.exceptionMessage = error;
|
|
85
|
+
return of(new ExceptionHandled(error));
|
|
86
|
+
}));
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
NotificationEffect.ɵfac = function NotificationEffect_Factory(t) { return new (t || NotificationEffect)(i0.ɵɵinject(i1.Actions), i0.ɵɵinject(i2.MenuItemService), i0.ɵɵinject(i3.TranslateService)); };
|
|
91
|
+
NotificationEffect.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NotificationEffect, factory: NotificationEffect.ɵfac });
|
|
92
|
+
__decorate([
|
|
93
|
+
Effect()
|
|
94
|
+
], NotificationEffect.prototype, "loadNotifications$", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
Effect()
|
|
97
|
+
], NotificationEffect.prototype, "loadAllNotifications$", void 0);
|
|
98
|
+
__decorate([
|
|
99
|
+
Effect()
|
|
100
|
+
], NotificationEffect.prototype, "showValidationMessagesForProjectList$", void 0);
|
|
101
|
+
__decorate([
|
|
102
|
+
Effect()
|
|
103
|
+
], NotificationEffect.prototype, "exceptionHandled$", void 0);
|
|
104
|
+
__decorate([
|
|
105
|
+
Effect()
|
|
106
|
+
], NotificationEffect.prototype, "UpsertUnreadNotifications$", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
Effect()
|
|
109
|
+
], NotificationEffect.prototype, "showValidationMessagesForCanteenFoodItem$", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
Effect()
|
|
112
|
+
], NotificationEffect.prototype, "ClearAllUnreadNotifications$", void 0);
|
|
113
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NotificationEffect, [{
|
|
114
|
+
type: Injectable
|
|
115
|
+
}], function () { return [{ type: i1.Actions }, { type: i2.MenuItemService }, { type: i3.TranslateService }]; }, { loadNotifications$: [], loadAllNotifications$: [], showValidationMessagesForProjectList$: [], exceptionHandled$: [], UpsertUnreadNotifications$: [], showValidationMessagesForCanteenFoodItem$: [], ClearAllUnreadNotifications$: [] }); })();
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc2hlbGwtbW9kdWxlLWNvbXBvbmVudHMvc2hlbGwtY29tcG9uZW50cy9zcmMvbGliL3NoZWxsLWNvbXBvbmVudHMvc3RvcmUvZWZmZWN0cy9ub3RpZmljYXRpb25zLmVmZmVjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBVyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUF3Qyx3QkFBd0IsRUFBRSxvQ0FBb0MsRUFBRSxpQ0FBaUMsRUFBRSxnQkFBZ0IsRUFBc0Msa0NBQWtDLEVBQUUsK0JBQStCLEVBQTRELE1BQU0sa0NBQWtDLENBQUM7QUFFaFgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7O0FBR3pHLE1BQU0sT0FBTyxrQkFBa0I7SUF3STdCLFlBQ1UsUUFBaUIsRUFDakIsZUFBZ0MsRUFDaEMsZ0JBQWtDO1FBRmxDLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF0STVDLHVCQUFrQixHQUF1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDekQsTUFBTSxDQUF1Qyx3QkFBd0IsQ0FBQyxvQ0FBb0MsQ0FBQyxFQUMzRyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkI7Z0JBQ0UsT0FBTyxJQUFJLENBQUMsZUFB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LENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7Z0JBQzlCLE9BQU8sRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQU9FLENBQUM7O29GQTVJTSxrQkFBa0I7d0VBQWxCLGtCQUFrQixXQUFsQixrQkFBa0I7QUFLN0I7SUFEQyxNQUFNLEVBQUU7OERBcUJQO0FBR0Y7SUFEQyxNQUFNLEVBQUU7aUVBcUJQO0FBSUY7SUFEQyxNQUFNLEVBQUU7aUZBYVA7QUFJRjtJQURDLE1BQU0sRUFBRTs2REFhUDtBQUdGO0lBREMsTUFBTSxFQUFFO3NFQWdCUDtBQUdGO0lBREMsTUFBTSxFQUFFO3FGQVVQO0FBR0Y7SUFEQyxNQUFNLEVBQUU7d0VBcUJQO3VGQXJJUyxrQkFBa0I7Y0FEOUIsVUFBVTt1SEFNVCxrQkFBa0IsTUF1QmxCLHFCQUFxQixNQXdCckIscUNBQXFDLE1BZ0JyQyxpQkFBaUIsTUFlakIsMEJBQTBCLE1Ba0IxQix5Q0FBeUMsTUFZekMsNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9ucywgRWZmZWN0LCBvZlR5cGUgfSBmcm9tIFwiQG5ncngvZWZmZWN0c1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBwaXBlLCBvZiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcbmltcG9ydCB7IHN3aXRjaE1hcCwgbWFwLCBjYXRjaEVycm9yIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZCwgTm90aWZpY2F0aW9uc0FjdGlvblR5cGVzLCBDbGVhckFsbFVucmVhZE5vdGlmaWNhdGlvbnNDb21wbGV0ZWQsIENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZCwgRXhjZXB0aW9uSGFuZGxlZCwgVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZCwgVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc0NvbXBsZXRlZCwgVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZCwgQ2xlYXJBbGxOb3RpZmljYXRpb25zLCBDbGVhclVucmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWQgfSBmcm9tIFwiLi4vYWN0aW9ucy9ub3RpZmljYXRpb25zLmFjdGlvbnNcIjtcbmltcG9ydCB7IE1lbnVJdGVtU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9mZWF0dXJlLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNob3dWYWxpZGF0aW9uTWVzc2FnZXMsIFNob3dFeGNlcHRpb25NZXNzYWdlcyB9IGZyb20gXCIuLi9hY3Rpb25zL25vdGlmaWNhdGlvbi12YWxpZGF0b3IuYWN0aW9uXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25FZmZlY3Qge1xuICB2YWxpZGF0aW9uTWVzc2FnZXM6IGFueVtdO1xuICBleGNlcHRpb25NZXNzYWdlOiBhbnk7XG5cbiAgQEVmZmVjdCgpXG4gIGxvYWROb3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZTxDbGVhckFsbFVucmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWQ+KE5vdGlmaWNhdGlvbnNBY3Rpb25UeXBlcy5DbGVhckFsbFVucmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWQpLFxuICAgIHN3aXRjaE1hcChzZWFyY2hBY3Rpb24gPT4ge1xuICAgICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51SXRlbVNlcnZpY2UuZ2V0QWxsTm90aWZpY2F0aW9ucyhzZWFyY2hBY3Rpb24ubm90aWZpY2F0aW9uKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChub3RpZmljYXRpb25zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbnMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zQ29tcGxldGVkKG5vdGlmaWNhdGlvbnMuZGF0YSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZChub3RpZmljYXRpb25zLmFwaVJlc3BvbnNlTWVzc2FnZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ldyBFeGNlcHRpb25IYW5kbGVkKGVycikpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG5cbiAgQEVmZmVjdCgpXG4gIGxvYWRBbGxOb3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZTxDbGVhclVucmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWQ+KE5vdGlmaWNhdGlvbnNBY3Rpb25UeXBlcy5DbGVhclVucmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWQpLFxuICAgIHN3aXRjaE1hcChzZWFyY2hBY3Rpb24gPT4ge1xuICAgICAge1xuICAgICAgICByZXR1cm4gdGhpcy5tZW51SXRlbVNlcnZpY2UuZ2V0QWxsTm90aWZpY2F0aW9ucyhzZWFyY2hBY3Rpb24ubm90aWZpY2F0aW9uKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChub3RpZmljYXRpb25zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbnMuc3VjY2Vzcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zQ29tcGxldGVkKG5vdGlmaWNhdGlvbnMuZGF0YSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENsZWFyQWxsVW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZChub3RpZmljYXRpb25zLmFwaVJlc3BvbnNlTWVzc2FnZXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKG5ldyBFeGNlcHRpb25IYW5kbGVkKGVycikpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH0pXG4gICk7XG5cblxuICBARWZmZWN0KClcbiAgc2hvd1ZhbGlkYXRpb25NZXNzYWdlc0ZvclByb2plY3RMaXN0JDogT2JzZXJ2YWJsZTxcbiAgICBBY3Rpb25cbiAgPiA9IHRoaXMuYWN0aW9ucyQucGlwZShcbiAgICBvZlR5cGU8Q2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zRmFpbGVkPihcbiAgICAgIE5vdGlmaWNhdGlvbnNBY3Rpb25UeXBlcy5DbGVhckFsbFVucmVhZE5vdGlmaWNhdGlvbnNGYWlsZWRcbiAgICApLFxuICAgIHN3aXRjaE1hcChzZWFyY2hBY3Rpb24gPT4ge1xuICAgICAgcmV0dXJuIG9mKG5ldyBTaG93VmFsaWRhdGlvbk1lc3NhZ2VzKHtcbiAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiBzZWFyY2hBY3Rpb24udmFsaWRhdGlvbk1lc3NhZ2VzLFxuICAgICAgfSlcbiAgICAgIClcbiAgICB9KVxuICApO1xuXG5cbiAgQEVmZmVjdCgpXG4gIGV4Y2VwdGlvbkhhbmRsZWQkOiBPYnNlcnZhYmxlPFxuICAgIEFjdGlvblxuICA+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZTxFeGNlcHRpb25IYW5kbGVkPihcbiAgICAgIE5vdGlmaWNhdGlvbnNBY3Rpb25UeXBlcy5FeGNlcHRpb25IYW5kbGVkXG4gICAgKSxcbiAgICBzd2l0Y2hNYXAoc2VhcmNoQWN0aW9uID0+IHtcbiAgICAgIHJldHVybiBvZihuZXcgU2hvd0V4Y2VwdGlvbk1lc3NhZ2VzKHtcbiAgICAgICAgbWVzc2FnZTogc2VhcmNoQWN0aW9uLmVycm9yTWVzc2FnZSwgLy8gVE9ETzogQ2hhbmdlIHRvIHByb3BlciB0b2FzdCBtZXNzYWdlXG4gICAgICB9KVxuICAgICAgKVxuICAgIH0pXG4gICk7XG5cbiAgQEVmZmVjdCgpXG4gIFVwc2VydFVucmVhZE5vdGlmaWNhdGlvbnMkOiBPYnNlcnZhYmxlPEFjdGlvbj4gPSB0aGlzLmFjdGlvbnMkLnBpcGUoXG4gICAgb2ZUeXBlPFVwc2VydFVucmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWQ+KE5vdGlmaWNhdGlvbnNBY3Rpb25UeXBlcy5VcHNlcnRVbnJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkKSxcbiAgICBzd2l0Y2hNYXAoVXBzZXJ0UmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWRBY3Rpb24gPT4ge1xuICAgICAgcmV0dXJuIHRoaXMubWVudUl0ZW1TZXJ2aWNlXG4gICAgICAgIC51cHNlcnROb3RpZmljYXRpb25SZWFkU3RhdHVzKFVwc2VydFJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkQWN0aW9uLnVwc2VydE5vdGlmaWNhdGlvbilcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChub3RpZmljYXRpb25JZDogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFVwc2VydFVucmVhZE5vdGlmaWNhdGlvbnNDb21wbGV0ZWQoVXBzZXJ0UmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWRBY3Rpb24udXBzZXJ0Tm90aWZpY2F0aW9uWzBdLm5vdGlmaWNhdGlvbklkKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXhjZXB0aW9uTWVzc2FnZSA9IGVycm9yO1xuICAgICAgICAgICAgcmV0dXJuIG9mKG5ldyBFeGNlcHRpb25IYW5kbGVkKGVycm9yKSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9KVxuICApO1xuXG4gIEBFZmZlY3QoKVxuICBzaG93VmFsaWRhdGlvbk1lc3NhZ2VzRm9yQ2FudGVlbkZvb2RJdGVtJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZTxVcHNlcnRVbnJlYWROb3RpZmljYXRpb25zRmFpbGVkPihOb3RpZmljYXRpb25zQWN0aW9uVHlwZXMuVXBzZXJ0VW5yZWFkTm90aWZpY2F0aW9uc0ZhaWxlZCksXG4gICAgcGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgU2hvd1ZhbGlkYXRpb25NZXNzYWdlcyh7XG4gICAgICAgICAgdmFsaWRhdGlvbk1lc3NhZ2VzOiB0aGlzLnZhbGlkYXRpb25NZXNzYWdlcywgLy8gVE9ETzogQ2hhbmdlIHRvIHByb3BlciB0b2FzdCBtZXNzYWdlXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgIClcbiAgKTtcblxuICBARWZmZWN0KClcbiAgQ2xlYXJBbGxVbnJlYWROb3RpZmljYXRpb25zJDogT2JzZXJ2YWJsZTxBY3Rpb24+ID0gdGhpcy5hY3Rpb25zJC5waXBlKFxuICAgIG9mVHlwZTxDbGVhckFsbE5vdGlmaWNhdGlvbnM+KE5vdGlmaWNhdGlvbnNBY3Rpb25UeXBlcy5DbGVhckFsbE5vdGlmaWNhdGlvbnMpLFxuICAgIHN3aXRjaE1hcChVcHNlcnRSZWFkTm90aWZpY2F0aW9uc1RyaWdnZXJlZEFjdGlvbiA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5tZW51SXRlbVNlcnZpY2VcbiAgICAgICAgLnVwc2VydE5vdGlmaWNhdGlvblJlYWRTdGF0dXMoVXBzZXJ0UmVhZE5vdGlmaWNhdGlvbnNUcmlnZ2VyZWRBY3Rpb24ucmVhZE5vdGlmaWNhdGlvbnMpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgobm90aWZpY2F0aW9uSWQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbklkLnN1Y2Nlc3MgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVcHNlcnRVbnJlYWROb3RpZmljYXRpb25zQ29tcGxldGVkKFVwc2VydFJlYWROb3RpZmljYXRpb25zVHJpZ2dlcmVkQWN0aW9uLnJlYWROb3RpZmljYXRpb25zWzBdLm5vdGlmaWNhdGlvbklkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VzID0gbm90aWZpY2F0aW9uSWQuYXBpUmVzcG9uc2VNZXNzYWdlc1xuICAgICAgICAgICAgICByZXR1cm4gbmV3IFVwc2VydFVucmVhZE5vdGlmaWNhdGlvbnNGYWlsZWQobm90aWZpY2F0aW9uSWQuYXBpUmVzcG9uc2VNZXNzYWdlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICB0aGlzLmV4Y2VwdGlvbk1lc3NhZ2UgPSBlcnJvcjtcbiAgICAgICAgICAgIHJldHVybiBvZihuZXcgRXhjZXB0aW9uSGFuZGxlZChlcnJvcikpO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfSlcbiAgKTtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBtZW51SXRlbVNlcnZpY2U6IE1lbnVJdGVtU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7IH1cbn1cbiJdfQ==
|