@thetradeengineorg1/snova-shell-module 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js +13896 -0
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -0
- package/esm2015/lib/globaldependencies/components/componentbase.js +538 -0
- package/esm2015/lib/globaldependencies/constants/feature-ids.js +449 -0
- package/esm2015/lib/globaldependencies/constants/localstorage-properties.js +38 -0
- package/esm2015/lib/globaldependencies/helpers/dom.helper.js +70 -0
- package/esm2015/lib/globaldependencies/helpers/fontawesome-icons.js +144 -0
- package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +37 -0
- package/esm2015/lib/globaldependencies/helpers/window.helper.js +32 -0
- package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +40 -0
- package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +36 -0
- package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +24 -0
- package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +24 -0
- package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +22 -0
- package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +24 -0
- package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +346 -0
- package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +23 -0
- package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +25 -0
- package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +27 -0
- package/esm2015/lib/shell-components/components/Payments/account.component.js +50 -0
- package/esm2015/lib/shell-components/components/Payments/company-information.js +262 -0
- package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +138 -0
- package/esm2015/lib/shell-components/components/Payments/document.component.js +57 -0
- package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +32 -0
- package/esm2015/lib/shell-components/components/Payments/product-service.component.js +143 -0
- package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +152 -0
- package/esm2015/lib/shell-components/components/Payments/transactions.component.js +60 -0
- package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +250 -0
- package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +89 -0
- package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +90 -0
- package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +357 -0
- package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +85 -0
- package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +83 -0
- package/esm2015/lib/shell-components/components/header-side/header-side.component.js +1642 -0
- package/esm2015/lib/shell-components/components/header-top/header-top.component.js +93 -0
- package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +26 -0
- package/esm2015/lib/shell-components/components/menu/menu.component.js +2478 -0
- package/esm2015/lib/shell-components/components/menu/searchTask.enum.js +10 -0
- package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +73 -0
- package/esm2015/lib/shell-components/components/notifications/notifications.component.js +449 -0
- package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +33 -0
- package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +81 -0
- package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +43 -0
- package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +71 -0
- package/esm2015/lib/shell-components/constants/api-urls.js +1052 -0
- package/esm2015/lib/shell-components/constants/available-languages.js +25 -0
- package/esm2015/lib/shell-components/constants/channel-names.js +38 -0
- package/esm2015/lib/shell-components/constants/menu-categories.js +6 -0
- package/esm2015/lib/shell-components/constants/notification-routes.js +6 -0
- package/esm2015/lib/shell-components/constants/notification-type-ids.js +42 -0
- package/esm2015/lib/shell-components/enum/recentSearchType.enum.js +13 -0
- package/esm2015/lib/shell-components/models/AppMenuItemModel.js +3 -0
- package/esm2015/lib/shell-components/models/AppNotification.js +17 -0
- package/esm2015/lib/shell-components/models/AssetAssignedNotificationModel.js +12 -0
- package/esm2015/lib/shell-components/models/ChannelUpdateModel.js +3 -0
- package/esm2015/lib/shell-components/models/EmployeeStatusModel.js +3 -0
- package/esm2015/lib/shell-components/models/IAdjust-screen-options.js +2 -0
- package/esm2015/lib/shell-components/models/IBadge.js +2 -0
- package/esm2015/lib/shell-components/models/IChildItem.js +2 -0
- package/esm2015/lib/shell-components/models/ILayout-change-options.js +2 -0
- package/esm2015/lib/shell-components/models/IMenuItem.js +2 -0
- package/esm2015/lib/shell-components/models/IlayoutConf.js +2 -0
- package/esm2015/lib/shell-components/models/IntroModel.js +3 -0
- package/esm2015/lib/shell-components/models/MessageDetails.js +3 -0
- package/esm2015/lib/shell-components/models/MessageTypingDetails.js +3 -0
- package/esm2015/lib/shell-components/models/NewProjectCreatedNotificationModel.js +10 -0
- package/esm2015/lib/shell-components/models/NewProjectFeatureNotificationModel.js +10 -0
- package/esm2015/lib/shell-components/models/NotificationsOutPutModel.js +22 -0
- package/esm2015/lib/shell-components/models/ProjectSearchCriteriaInputModel.js +3 -0
- package/esm2015/lib/shell-components/models/RecentSearchModel.js +5 -0
- package/esm2015/lib/shell-components/models/ReportConfigAssignedNotification.js +11 -0
- package/esm2015/lib/shell-components/models/ReportSubmittedNotification.js +12 -0
- package/esm2015/lib/shell-components/models/RoleUpdatedNotification.js +9 -0
- package/esm2015/lib/shell-components/models/UserStoryAssignedNotification.js +13 -0
- package/esm2015/lib/shell-components/models/archiveUserStoryModel.js +10 -0
- package/esm2015/lib/shell-components/models/companieslist.model.js +3 -0
- package/esm2015/lib/shell-components/models/company-model.js +7 -0
- package/esm2015/lib/shell-components/models/company-payment-model.js +3 -0
- package/esm2015/lib/shell-components/models/dragedWidget.js +3 -0
- package/esm2015/lib/shell-components/models/employee-List.js +3 -0
- package/esm2015/lib/shell-components/models/employee.js +4 -0
- package/esm2015/lib/shell-components/models/entityRoleFeature.js +3 -0
- package/esm2015/lib/shell-components/models/export-configuration-model.js +3 -0
- package/esm2015/lib/shell-components/models/export-data.module.js +8 -0
- package/esm2015/lib/shell-components/models/goalApprovedNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/import-configuration-model.js +3 -0
- package/esm2015/lib/shell-components/models/initialStatusofUsers.js +3 -0
- package/esm2015/lib/shell-components/models/invoiceOutput-model.js +3 -0
- package/esm2015/lib/shell-components/models/leaveApplicationNotifiction.js +9 -0
- package/esm2015/lib/shell-components/models/multiChartsScheduling.js +11 -0
- package/esm2015/lib/shell-components/models/parkUserStoryInputModel.js +10 -0
- package/esm2015/lib/shell-components/models/project.js +3 -0
- package/esm2015/lib/shell-components/models/recentSearchApiModel.js +3 -0
- package/esm2015/lib/shell-components/models/searchCriteriaInputModelBase.js +3 -0
- package/esm2015/lib/shell-components/models/shellModulesInfo.js +7 -0
- package/esm2015/lib/shell-components/models/softlabels-model.js +7 -0
- package/esm2015/lib/shell-components/models/sprintReplanRequestedModel.js +9 -0
- package/esm2015/lib/shell-components/models/sprintStartedNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/store-model.js +3 -0
- package/esm2015/lib/shell-components/models/store-search-model.js +4 -0
- package/esm2015/lib/shell-components/models/themes.model.js +3 -0
- package/esm2015/lib/shell-components/models/timesheetenabledisable.js +4 -0
- package/esm2015/lib/shell-components/models/user.js +8 -0
- package/esm2015/lib/shell-components/models/userStory.js +3 -0
- package/esm2015/lib/shell-components/models/userStoryCommentNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/userStoryUpdateNotificationModel.js +9 -0
- package/esm2015/lib/shell-components/models/userstory-custom-fields.model.js +3 -0
- package/esm2015/lib/shell-components/models/validation.model.js +2 -0
- package/esm2015/lib/shell-components/models/widgetlist.js +6 -0
- package/esm2015/lib/shell-components/models/workspaceList.js +3 -0
- package/esm2015/lib/shell-components/services/authentication.service.js +96 -0
- package/esm2015/lib/shell-components/services/chat.service.js +67 -0
- package/esm2015/lib/shell-components/services/common-used.service.js +263 -0
- package/esm2015/lib/shell-components/services/feature.service.js +101 -0
- package/esm2015/lib/shell-components/services/google-analytics.service.js +24 -0
- package/esm2015/lib/shell-components/services/layout.service.js +68 -0
- package/esm2015/lib/shell-components/services/payment.service.js +103 -0
- package/esm2015/lib/shell-components/services/recentSearch.service.js +90 -0
- package/esm2015/lib/shell-components/services/shell.modules.service.js +24 -0
- package/esm2015/lib/shell-components/services/signalr.service.js +113 -0
- package/esm2015/lib/shell-components/services/theme.service.js +161 -0
- package/esm2015/lib/shell-components/shell.module.js +436 -0
- package/esm2015/lib/shell-components/shell.routing.js +16 -0
- package/esm2015/lib/shell-components/store/actions/authentication.actions.js +260 -0
- package/esm2015/lib/shell-components/store/actions/chat.actions.js +248 -0
- package/esm2015/lib/shell-components/store/actions/menuitems.actions.js +39 -0
- package/esm2015/lib/shell-components/store/actions/notification-validator.action.js +19 -0
- package/esm2015/lib/shell-components/store/actions/notifications.actions.js +74 -0
- package/esm2015/lib/shell-components/store/effects/authentication.effects.js +503 -0
- package/esm2015/lib/shell-components/store/effects/chat.effects.js +139 -0
- package/esm2015/lib/shell-components/store/effects/index.js +13 -0
- package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +53 -0
- package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +56 -0
- package/esm2015/lib/shell-components/store/effects/notifications.effects.js +116 -0
- package/esm2015/lib/shell-components/store/reducers/authentication.reducers.js +86 -0
- package/esm2015/lib/shell-components/store/reducers/chat.reducers.js +68 -0
- package/esm2015/lib/shell-components/store/reducers/index.js +80 -0
- package/esm2015/lib/shell-components/store/reducers/menuitems.reducers.js +56 -0
- package/esm2015/lib/shell-components/store/reducers/notification-validator.reducers.js +13 -0
- package/esm2015/lib/shell-components/store/reducers/notifications.reducers.js +38 -0
- package/esm2015/public-api.js +90 -0
- package/esm2015/store/reducers/index.js +47 -0
- package/esm2015/thetradeengineorg1-snova-shell-module.js +5 -0
- package/fesm2015/thetradeengineorg1-snova-shell-module.js +12808 -0
- package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -0
- package/lib/globaldependencies/components/componentbase.d.ts +455 -0
- package/lib/globaldependencies/constants/feature-ids.d.ts +448 -0
- package/lib/globaldependencies/constants/localstorage-properties.d.ts +37 -0
- package/lib/globaldependencies/helpers/dom.helper.d.ts +7 -0
- package/lib/globaldependencies/helpers/fontawesome-icons.d.ts +1 -0
- package/lib/globaldependencies/helpers/moment-utc-date-adapter.d.ts +9 -0
- package/lib/globaldependencies/helpers/window.helper.d.ts +12 -0
- package/lib/globaldependencies/intercepter/jwt.interceptor.d.ts +11 -0
- package/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/highLightText.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/orderby-pipe.d.ts +9 -0
- package/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/sanitize.pipe.d.ts +11 -0
- package/lib/globaldependencies/pipes/softlabels.pipes.d.ts +8 -0
- package/lib/globaldependencies/pipes/utctolocaltime.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.d.ts +8 -0
- package/lib/globaldependencies/pipes/workflowstatus.pipes.d.ts +8 -0
- package/lib/shell-components/components/Payments/account.component.d.ts +14 -0
- package/lib/shell-components/components/Payments/company-information.d.ts +62 -0
- package/lib/shell-components/components/Payments/company-plans.component.d.ts +47 -0
- package/lib/shell-components/components/Payments/document.component.d.ts +20 -0
- package/lib/shell-components/components/Payments/payment-method.component.d.ts +15 -0
- package/lib/shell-components/components/Payments/product-service.component.d.ts +48 -0
- package/lib/shell-components/components/Payments/purchase-more-licenses.d.ts +37 -0
- package/lib/shell-components/components/Payments/transactions.component.d.ts +28 -0
- package/lib/shell-components/components/admin-layout/admin-layout.component.d.ts +67 -0
- package/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.d.ts +32 -0
- package/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.d.ts +32 -0
- package/lib/shell-components/components/export-import-configuration/export-configuration.component.d.ts +60 -0
- package/lib/shell-components/components/feed-time/feed-time-dialog.component.d.ts +33 -0
- package/lib/shell-components/components/feed-time/feed-time.component.d.ts +27 -0
- package/lib/shell-components/components/header-side/header-side.component.d.ts +216 -0
- package/lib/shell-components/components/header-top/header-top.component.d.ts +40 -0
- package/lib/shell-components/components/lives/lives-welcome-page.d.ts +14 -0
- package/lib/shell-components/components/menu/menu.component.d.ts +220 -0
- package/lib/shell-components/components/menu/searchTask.enum.d.ts +8 -0
- package/lib/shell-components/components/notifications/announcement-dialog.component.d.ts +27 -0
- package/lib/shell-components/components/notifications/notifications.component.d.ts +53 -0
- package/lib/shell-components/components/sidebar-top/sidebar-top.component.d.ts +10 -0
- package/lib/shell-components/components/sidenav/side-bar.component.d.ts +23 -0
- package/lib/shell-components/components/sidenav/sidenav.component.d.ts +17 -0
- package/lib/shell-components/components/submit-feedback/submit-feedback.component.d.ts +25 -0
- package/lib/shell-components/constants/api-urls.d.ts +1051 -0
- package/lib/shell-components/constants/available-languages.d.ts +7 -0
- package/lib/shell-components/constants/channel-names.d.ts +37 -0
- package/lib/shell-components/constants/menu-categories.d.ts +5 -0
- package/lib/shell-components/constants/notification-routes.d.ts +5 -0
- package/lib/shell-components/constants/notification-type-ids.d.ts +41 -0
- package/lib/shell-components/enum/recentSearchType.enum.d.ts +11 -0
- package/lib/shell-components/models/AppMenuItemModel.d.ts +12 -0
- package/lib/shell-components/models/AppNotification.d.ts +12 -0
- package/lib/shell-components/models/AssetAssignedNotificationModel.d.ts +10 -0
- package/lib/shell-components/models/ChannelUpdateModel.d.ts +47 -0
- package/lib/shell-components/models/EmployeeStatusModel.d.ts +11 -0
- package/lib/shell-components/models/IAdjust-screen-options.d.ts +4 -0
- package/lib/shell-components/models/IBadge.d.ts +4 -0
- package/lib/shell-components/models/IChildItem.d.ts +7 -0
- package/lib/shell-components/models/ILayout-change-options.d.ts +4 -0
- package/lib/shell-components/models/IMenuItem.d.ts +14 -0
- package/lib/shell-components/models/IlayoutConf.d.ts +10 -0
- package/lib/shell-components/models/IntroModel.d.ts +3 -0
- package/lib/shell-components/models/MessageDetails.d.ts +55 -0
- package/lib/shell-components/models/MessageTypingDetails.d.ts +9 -0
- package/lib/shell-components/models/NewProjectCreatedNotificationModel.d.ts +8 -0
- package/lib/shell-components/models/NewProjectFeatureNotificationModel.d.ts +8 -0
- package/lib/shell-components/models/NotificationsOutPutModel.d.ts +41 -0
- package/lib/shell-components/models/ProjectSearchCriteriaInputModel.d.ts +10 -0
- package/lib/shell-components/models/RecentSearchModel.d.ts +14 -0
- package/lib/shell-components/models/ReportConfigAssignedNotification.d.ts +9 -0
- package/lib/shell-components/models/ReportSubmittedNotification.d.ts +10 -0
- package/lib/shell-components/models/RoleUpdatedNotification.d.ts +7 -0
- package/lib/shell-components/models/UserStoryAssignedNotification.d.ts +8 -0
- package/lib/shell-components/models/archiveUserStoryModel.d.ts +7 -0
- package/lib/shell-components/models/companieslist.model.d.ts +8 -0
- package/lib/shell-components/models/company-model.d.ts +31 -0
- package/lib/shell-components/models/company-payment-model.d.ts +18 -0
- package/lib/shell-components/models/dragedWidget.d.ts +16 -0
- package/lib/shell-components/models/employee-List.d.ts +8 -0
- package/lib/shell-components/models/employee.d.ts +60 -0
- package/lib/shell-components/models/entityRoleFeature.d.ts +9 -0
- package/lib/shell-components/models/export-configuration-model.d.ts +8 -0
- package/lib/shell-components/models/export-data.module.d.ts +6 -0
- package/lib/shell-components/models/goalApprovedNotificationModel.d.ts +8 -0
- package/lib/shell-components/models/import-configuration-model.d.ts +3 -0
- package/lib/shell-components/models/initialStatusofUsers.d.ts +5 -0
- package/lib/shell-components/models/invoiceOutput-model.d.ts +9 -0
- package/lib/shell-components/models/leaveApplicationNotifiction.d.ts +7 -0
- package/lib/shell-components/models/multiChartsScheduling.d.ts +9 -0
- package/lib/shell-components/models/parkUserStoryInputModel.d.ts +7 -0
- package/lib/shell-components/models/project.d.ts +28 -0
- package/lib/shell-components/models/recentSearchApiModel.d.ts +6 -0
- package/lib/shell-components/models/searchCriteriaInputModelBase.d.ts +10 -0
- package/lib/shell-components/models/shellModulesInfo.d.ts +16 -0
- package/lib/shell-components/models/softlabels-model.d.ts +66 -0
- package/lib/shell-components/models/sprintReplanRequestedModel.d.ts +7 -0
- package/lib/shell-components/models/sprintStartedNotificationModel.d.ts +7 -0
- package/lib/shell-components/models/store-model.d.ts +13 -0
- package/lib/shell-components/models/store-search-model.d.ts +7 -0
- package/lib/shell-components/models/themes.model.d.ts +9 -0
- package/lib/shell-components/models/timesheetenabledisable.d.ts +16 -0
- package/lib/shell-components/models/user.d.ts +40 -0
- package/lib/shell-components/models/userStory.d.ts +188 -0
- package/lib/shell-components/models/userStoryCommentNotificationModel.d.ts +6 -0
- package/lib/shell-components/models/userStoryUpdateNotificationModel.d.ts +6 -0
- package/lib/shell-components/models/userstory-custom-fields.model.d.ts +6 -0
- package/lib/shell-components/models/validation.model.d.ts +5 -0
- package/lib/shell-components/models/widgetlist.d.ts +28 -0
- package/lib/shell-components/models/workspaceList.d.ts +19 -0
- package/lib/shell-components/services/authentication.service.d.ts +18 -0
- package/lib/shell-components/services/chat.service.d.ts +16 -0
- package/lib/shell-components/services/common-used.service.d.ts +45 -0
- package/lib/shell-components/services/feature.service.d.ts +19 -0
- package/lib/shell-components/services/google-analytics.service.d.ts +9 -0
- package/lib/shell-components/services/layout.service.d.ts +23 -0
- package/lib/shell-components/services/payment.service.d.ts +19 -0
- package/lib/shell-components/services/recentSearch.service.d.ts +16 -0
- package/lib/shell-components/services/shell.modules.service.d.ts +9 -0
- package/lib/shell-components/services/signalr.service.d.ts +25 -0
- package/lib/shell-components/services/theme.service.d.ts +14 -0
- package/lib/shell-components/shell.module.d.ts +117 -0
- package/lib/shell-components/shell.routing.d.ts +2 -0
- package/lib/shell-components/store/actions/authentication.actions.d.ts +327 -0
- package/lib/shell-components/store/actions/chat.actions.d.ts +399 -0
- package/lib/shell-components/store/actions/menuitems.actions.d.ts +51 -0
- package/lib/shell-components/store/actions/notification-validator.action.d.ts +25 -0
- package/lib/shell-components/store/actions/notifications.actions.d.ts +116 -0
- package/lib/shell-components/store/effects/authentication.effects.d.ts +54 -0
- package/lib/shell-components/store/effects/chat.effects.d.ts +30 -0
- package/lib/shell-components/store/effects/index.d.ts +1 -0
- package/lib/shell-components/store/effects/menuitems.effects.d.ts +17 -0
- package/lib/shell-components/store/effects/notification-validator.effects.d.ts +21 -0
- package/lib/shell-components/store/effects/notifications.effects.d.ts +23 -0
- package/lib/shell-components/store/reducers/authentication.reducers.d.ts +30 -0
- package/lib/shell-components/store/reducers/chat.reducers.d.ts +17 -0
- package/lib/shell-components/store/reducers/index.d.ts +59 -0
- package/lib/shell-components/store/reducers/menuitems.reducers.d.ts +11 -0
- package/lib/shell-components/store/reducers/notification-validator.reducers.d.ts +5 -0
- package/lib/shell-components/store/reducers/notifications.reducers.d.ts +10 -0
- package/package.json +22 -0
- package/public-api.d.ts +80 -0
- package/store/reducers/index.d.ts +24 -0
- package/thetradeengineorg1-snova-shell-module.d.ts +5 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { Component, HostListener } from "@angular/core";
|
|
2
|
+
import { NavigationEnd, RouteConfigLoadStart, RouteConfigLoadEnd, ResolveStart, ResolveEnd, NavigationStart, NavigationCancel, NavigationError, } from "@angular/router";
|
|
3
|
+
// import PerfectScrollbar from 'perfect-scrollbar';
|
|
4
|
+
import { Subject } from "rxjs";
|
|
5
|
+
import { takeUntil, tap } from "rxjs/operators";
|
|
6
|
+
import { filter } from "rxjs/operators";
|
|
7
|
+
import { UserDetailsFetchedAfterLogin, AuthenticationActionTypes } from "../../store/actions/authentication.actions";
|
|
8
|
+
import { ofType } from "@ngrx/effects";
|
|
9
|
+
import { SoftLabelConfigurationModel } from "../../models/softlabels-model";
|
|
10
|
+
import '../../../globaldependencies/helpers/fontawesome-icons';
|
|
11
|
+
import { LocalStorageProperties } from '../../../globaldependencies/constants/localstorage-properties';
|
|
12
|
+
import { SPINNER } from 'ngx-ui-loader';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/router";
|
|
15
|
+
import * as i2 from "@ngx-translate/core";
|
|
16
|
+
import * as i3 from "../../services/layout.service";
|
|
17
|
+
import * as i4 from "@ngrx/store";
|
|
18
|
+
import * as i5 from "ngx-cookie-service";
|
|
19
|
+
import * as i6 from "@ngrx/effects";
|
|
20
|
+
import * as i7 from "@angular/common";
|
|
21
|
+
import * as i8 from "../../services/common-used.service";
|
|
22
|
+
import * as i9 from "pubnub-angular2";
|
|
23
|
+
import * as i10 from "../../services/signalr.service";
|
|
24
|
+
import * as i11 from "../header-top/header-top.component";
|
|
25
|
+
import * as i12 from "ngx-ui-loader";
|
|
26
|
+
import * as i13 from "@angular/material/sidenav";
|
|
27
|
+
import * as i14 from "../sidebar-top/sidebar-top.component";
|
|
28
|
+
import * as i15 from "../header-side/header-side.component";
|
|
29
|
+
import * as i16 from "../sidenav/side-bar.component";
|
|
30
|
+
import * as i17 from "@angular/cdk/bidi";
|
|
31
|
+
import * as i18 from "@angular/flex-layout/extended";
|
|
32
|
+
import * as i19 from "ngx-perfect-scrollbar";
|
|
33
|
+
export class AdminLayoutComponent {
|
|
34
|
+
constructor(router, translate, layout, store, cookieService, actionUpdates$, location, commonService, pubnub, signalr) {
|
|
35
|
+
this.router = router;
|
|
36
|
+
this.translate = translate;
|
|
37
|
+
this.layout = layout;
|
|
38
|
+
this.store = store;
|
|
39
|
+
this.cookieService = cookieService;
|
|
40
|
+
this.actionUpdates$ = actionUpdates$;
|
|
41
|
+
this.location = location;
|
|
42
|
+
this.commonService = commonService;
|
|
43
|
+
this.pubnub = pubnub;
|
|
44
|
+
this.signalr = signalr;
|
|
45
|
+
this.isModuleLoading = false;
|
|
46
|
+
// private sidebarPS: PerfectScrollbar;
|
|
47
|
+
// private bodyPS: PerfectScrollbar;
|
|
48
|
+
// private headerFixedBodyPS: PerfectScrollbar;
|
|
49
|
+
this.scrollConfig = {};
|
|
50
|
+
this.layoutConf = {};
|
|
51
|
+
this.ngDestroyed$ = new Subject();
|
|
52
|
+
this.userstory = 'userstory';
|
|
53
|
+
this.loading = false;
|
|
54
|
+
this.totalLoadingTime = 0;
|
|
55
|
+
this.spinnerType = SPINNER.circle;
|
|
56
|
+
// let conId = sessionStorage.getItem('conectionId');
|
|
57
|
+
// if(!conId) {
|
|
58
|
+
this.signalr.initializeSignalRConnection();
|
|
59
|
+
// }
|
|
60
|
+
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
61
|
+
let companySettings = localStorage.getItem(LocalStorageProperties.CompanySettings);
|
|
62
|
+
if (!companySettings || companySettings == 'null' || companySettings == "undefined") {
|
|
63
|
+
pubnub.init({
|
|
64
|
+
publishKey: environment.publishKey,
|
|
65
|
+
subscribeKey: environment.subscribeKey
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
const comSet = JSON.parse(localStorage.getItem(LocalStorageProperties.CompanySettings));
|
|
70
|
+
var publishKey = comSet.find(i => i.key == "PubnubPublishKey");
|
|
71
|
+
var subscribeKey = comSet.find(i => i.key == "PubnubSubscribeKey");
|
|
72
|
+
if ((publishKey && publishKey.value) && (subscribeKey && subscribeKey.value)) {
|
|
73
|
+
pubnub.init({
|
|
74
|
+
publishKey: publishKey.value,
|
|
75
|
+
subscribeKey: subscribeKey.value
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
pubnub.init({
|
|
80
|
+
publishKey: environment.publishKey,
|
|
81
|
+
subscribeKey: environment.subscribeKey
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Close sidenav after route change in mobile
|
|
86
|
+
this.routerEventSub = router.events
|
|
87
|
+
.pipe(filter(event => event instanceof NavigationEnd))
|
|
88
|
+
.subscribe((routeChange) => {
|
|
89
|
+
this.layout.adjustLayout({ route: routeChange.url });
|
|
90
|
+
});
|
|
91
|
+
// Translator init
|
|
92
|
+
let currentCulture = this.cookieService.get(LocalStorageProperties.CurrentCulture);
|
|
93
|
+
if (currentCulture === 'null' || currentCulture === 'undefined') {
|
|
94
|
+
currentCulture = 'en';
|
|
95
|
+
}
|
|
96
|
+
translate.use(currentCulture);
|
|
97
|
+
this.router.events.subscribe((event) => {
|
|
98
|
+
switch (true) {
|
|
99
|
+
case event instanceof NavigationStart: {
|
|
100
|
+
this.loading = true;
|
|
101
|
+
this.totalLoadingTime = 0;
|
|
102
|
+
this.startTimer();
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
case event instanceof NavigationEnd: {
|
|
106
|
+
this.loading = false;
|
|
107
|
+
clearInterval(this.interval);
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case event instanceof NavigationCancel:
|
|
111
|
+
case event instanceof NavigationError: {
|
|
112
|
+
this.loading = false;
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
default: {
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
router.events.subscribe(val => {
|
|
121
|
+
if (location.path() != "") {
|
|
122
|
+
if (location.path().includes('/dashboard-management/dashboard/')) {
|
|
123
|
+
this.dashboardPage = true;
|
|
124
|
+
this.bgcolor = 'none';
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
this.dashboardPage = false;
|
|
128
|
+
this.bgcolor = 'beige';
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
// if (this.cookieService.check(LocalStorageProperties.UserModel)) {
|
|
133
|
+
// let data = JSON.parse(this.cookieService.get(LocalStorageProperties.UserModel));
|
|
134
|
+
// if (data && data != 'null' && data != 'undefined')
|
|
135
|
+
// this.store.dispatch(new UserDetailsFetchedAfterLogin(data));
|
|
136
|
+
// }
|
|
137
|
+
if ((localStorage.getItem(LocalStorageProperties.UserModel) != null && localStorage.getItem(LocalStorageProperties.UserModel) != undefined)
|
|
138
|
+
&& !localStorage.hasOwnProperty(LocalStorageProperties.UserRoleFeatures)) {
|
|
139
|
+
let data = JSON.parse(localStorage.getItem(LocalStorageProperties.UserModel));
|
|
140
|
+
this.store.dispatch(new UserDetailsFetchedAfterLogin(data));
|
|
141
|
+
}
|
|
142
|
+
this.actionUpdates$
|
|
143
|
+
.pipe(takeUntil(this.ngDestroyed$), ofType(AuthenticationActionTypes.ClearDemoDataCompleted), tap((result) => {
|
|
144
|
+
if (result && result.companyId) {
|
|
145
|
+
this.getSoftLabels();
|
|
146
|
+
}
|
|
147
|
+
})).subscribe();
|
|
148
|
+
}
|
|
149
|
+
ngOnInit() {
|
|
150
|
+
this.getSoftLabelConfigurations();
|
|
151
|
+
this.layoutConf = this.layout.layoutConf;
|
|
152
|
+
// this.layout.adjustLayout();
|
|
153
|
+
// FOR MODULE LOADER FLAG
|
|
154
|
+
this.moduleLoaderSub = this.router.events.subscribe(event => {
|
|
155
|
+
if (event instanceof RouteConfigLoadStart ||
|
|
156
|
+
event instanceof ResolveStart) {
|
|
157
|
+
this.isModuleLoading = false;
|
|
158
|
+
}
|
|
159
|
+
if (event instanceof RouteConfigLoadEnd || event instanceof ResolveEnd) {
|
|
160
|
+
this.isModuleLoading = false;
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
onResize(event) {
|
|
165
|
+
this.layout.adjustLayout(event);
|
|
166
|
+
}
|
|
167
|
+
Opened(event) {
|
|
168
|
+
this.display = event;
|
|
169
|
+
}
|
|
170
|
+
getSoftLabelConfigurations() {
|
|
171
|
+
this.softLabels = JSON.parse(localStorage.getItem('SoftLabels'));
|
|
172
|
+
}
|
|
173
|
+
getSoftLabels() {
|
|
174
|
+
let model = new SoftLabelConfigurationModel();
|
|
175
|
+
model.searchText = null;
|
|
176
|
+
this.commonService.getSoftLabels(model).subscribe((response) => {
|
|
177
|
+
if (response.success) {
|
|
178
|
+
let data = response.data;
|
|
179
|
+
if (data) {
|
|
180
|
+
localStorage.setItem('SoftLabels', JSON.stringify(data));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
ngAfterViewInit() {
|
|
186
|
+
// this.layoutConfSub = this.layout.layoutConf$.subscribe(change => {
|
|
187
|
+
// // this.initBodyPS(change)
|
|
188
|
+
// })
|
|
189
|
+
}
|
|
190
|
+
// initBodyPS(layoutConf:any = {}) {
|
|
191
|
+
// if(layoutConf.navigationPos === 'side' && layoutConf.topbarFixed) {
|
|
192
|
+
// if (this.bodyPS) this.bodyPS.destroy();
|
|
193
|
+
// if (this.headerFixedBodyPS) this.headerFixedBodyPS.destroy();
|
|
194
|
+
// this.headerFixedBodyPS = new PerfectScrollbar('.rightside-content-hold', {
|
|
195
|
+
// suppressScrollX: true
|
|
196
|
+
// });
|
|
197
|
+
// this.scrollToTop('.rightside-content-hold');
|
|
198
|
+
// } else {
|
|
199
|
+
// if (this.bodyPS) this.bodyPS.destroy();
|
|
200
|
+
// if (this.headerFixedBodyPS) this.headerFixedBodyPS.destroy();
|
|
201
|
+
// this.bodyPS = new PerfectScrollbar('.main-content-wrap', {
|
|
202
|
+
// suppressScrollX: true
|
|
203
|
+
// });
|
|
204
|
+
// this.scrollToTop('.main-content-wrap');
|
|
205
|
+
// }
|
|
206
|
+
// }
|
|
207
|
+
scrollToTop(selector) {
|
|
208
|
+
if (document) {
|
|
209
|
+
let element = document.querySelector(selector);
|
|
210
|
+
element.scrollTop = 0;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
ngOnDestroy() {
|
|
214
|
+
if (this.moduleLoaderSub) {
|
|
215
|
+
this.moduleLoaderSub.unsubscribe();
|
|
216
|
+
}
|
|
217
|
+
if (this.layoutConfSub) {
|
|
218
|
+
this.layoutConfSub.unsubscribe();
|
|
219
|
+
}
|
|
220
|
+
if (this.routerEventSub) {
|
|
221
|
+
this.routerEventSub.unsubscribe();
|
|
222
|
+
}
|
|
223
|
+
if (this.sub) {
|
|
224
|
+
this.sub.unsubscribe();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
closeSidebar() {
|
|
228
|
+
this.layout.publishLayoutChange({
|
|
229
|
+
sidebarStyle: "closed"
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
startTimer() {
|
|
233
|
+
this.interval = setInterval(() => {
|
|
234
|
+
this.totalLoadingTime++;
|
|
235
|
+
}, 1000);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
AdminLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: AdminLayoutComponent, deps: [{ token: i1.Router }, { token: i2.TranslateService }, { token: i3.LayoutService }, { token: i4.Store }, { token: i5.CookieService }, { token: i6.Actions }, { token: i7.Location }, { token: i8.CommonService }, { token: i9.PubNubAngular }, { token: i10.SignalrService }], target: i0.ɵɵFactoryTarget.Component });
|
|
239
|
+
AdminLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.1", type: AdminLayoutComponent, selector: "app-admin-layout", host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"app-admin-wrap\" [dir]='layoutConf.dir'>\r\n <!-- Header for top navigation layout -->\r\n <!-- ONLY REQUIRED FOR **TOP** NAVIGATION LAYOUT -->\r\n <app-header-top *ngIf=\"layoutConf.navigationPos === 'top'\" [notificPanel]=\"sidenav\">\r\n </app-header-top>\r\n <ngx-ui-loader fgsSize=\"180\" [fgsType]=\"spinnerType\" color=\"primary\"></ngx-ui-loader>\r\n <!-- Main Container -->\r\n <mat-sidenav-container [dir]='layoutConf.dir' class=\"app-admin-container app-side-nav-container mat-drawer-transition\"\r\n [ngClass]=\"{\r\n 'navigation-top': layoutConf.navigationPos === 'top',\r\n 'sidebar-full': layoutConf.sidebarStyle === 'full',\r\n 'sidebar-compact': layoutConf.sidebarStyle === 'compact' && layoutConf.navigationPos === 'side',\r\n 'sidebar-compact-big': layoutConf.sidebarStyle === 'compact-big' && layoutConf.navigationPos === 'side',\r\n 'layout-intransition': layoutConf.layoutInTransition,\r\n 'sidebar-opened': layoutConf.sidebarStyle !== 'closed' && layoutConf.navigationPos === 'side',\r\n 'sidebar-closed': layoutConf.sidebarStyle === 'closed',\r\n 'fixed-topbar': layoutConf.topbarFixed && layoutConf.navigationPos === 'side'\r\n }\">\r\n <!-- SIDEBAR -->\r\n <!-- ONLY REQUIRED FOR **SIDE** NAVIGATION LAYOUT -->\r\n <!-- <app-sidebar-side *ngIf=\"layoutConf.navigationPos === 'side'\"></app-sidebar-side> -->\r\n\r\n <!-- Top navigation layout (navigation for mobile screen) -->\r\n <!-- ONLY REQUIRED FOR **TOP** NAVIGATION MOBILE LAYOUT -->\r\n <app-sidebar-top *ngIf=\"layoutConf.navigationPos === 'top' && layoutConf.isMobile\"></app-sidebar-top>\r\n\r\n <!-- App content -->\r\n <div class=\"main-content-wrap\" [perfectScrollbar]=\"scrollConfig\" [disabled]=\"layoutConf.topbarFixed\">\r\n <!-- Header for side navigation layout -->\r\n <!-- ONLY REQUIRED FOR **SIDE** NAVIGATION LAYOUT -->\r\n <app-header-side (opened)=\"Opened($event)\" [notificPanel]=\"sidenav\">\r\n </app-header-side>\r\n\r\n <!-- <div class=\"mr-1\" *ngIf=\"!dashboardPage\">\r\n <gc-userstory-summary *ngIf=\"userStory\" style=\"width: -webkit-fill-available;background-color: beige;\"\r\n [userStory]=\"userStory\" [isSubTasksPage]=false [isLoading]=\"(anyOperationInProgressForAutoLogging$|async)\"\r\n [isUserStoriesPage]=false (updateAutoLog)=\"LogAction($event)\">\r\n </gc-userstory-summary>\r\n <div *ngIf=\"!userStory\">\r\n You are not started any userstory yet! Please start work!!\r\n </div>\r\n <div class=\"ml-05\">\r\n <fa-icon class=\"caret-size\" style=\"color:#3da8b5\" icon=\"caret-down\" [satPopoverAnchorFor]=\"recentUserStory\"\r\n (click)=\"recentUserStory.toggle()\"></fa-icon>\r\n </div>\r\n <sat-popover #recentUserStory hasBackdrop backdropClass=\"us-popover\"> \r\n <mat-card>\r\n <div *ngFor=\"let userStory of (userStories$ | async | slice:0:5)\" style=\"min-width: 1000px;\" class=\"view-us\">\r\n <gc-userstory-summary style=\"width: -webkit-fill-available;background-color: beige;\"\r\n [userStory]=\"userStory\" [isSubTasksPage]=false [isLoading]=\"(anyOperationInProgressForAutoLogging$|async)\"\r\n [isUserStoriesPage]=true (updateAutoLog)=\"LogAction($event)\" [isShow]=\"false\" (close)=\"recentUserStory.close()\">\r\n </gc-userstory-summary>\r\n </div>\r\n </mat-card>\r\n </sat-popover>\r\n </div> -->\r\n\r\n <div class=\"rightside-content-hold\" [perfectScrollbar]=\"scrollConfig\" [disabled]=\"!layoutConf.topbarFixed\"\r\n [ngClass]=\"{'blur-on-opened': display}\" [ngClass]=\"{'show-in-dashboard':dashboardPage}\">\r\n <!-- <div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"mr-1\" *ngIf=\"!dashboardPage\" [ngStyle]=\"{'margin-left': '90px'}\" \r\n [ngStyle]=\"{'background-color': userStory ? 'beige' : 'none' }\" style=\"margin-right:90px !important\">\r\n <gc-userstory-summary fxFlex=\"90\" *ngIf=\"userStory\" style=\"width: -webkit-fill-available;background-color: beige;\"\r\n [userStory]=\"userStory\" [isSubTasksPage]=false [isLoading]=\"(anyOperationInProgressForAutoLogging$|async)\"\r\n [isUserStoriesPage]=false (updateAutoLog)=\"LogAction($event)\">\r\n </gc-userstory-summary>\r\n <mat-card *ngIf=\"!userStory\" style=\"padding: 10px;left: -75px;\">\r\n <span>\r\n You are not started any {{ userstory | softLabelsPipe : softLabels}} yet! Please start work!!\r\n </span>\r\n <span class=\"ml-05\">\r\n <fa-icon class=\"caret-size\" style=\"color:#3da8b5\" icon=\"caret-down\" [satPopoverAnchorFor]=\"recentUserStory\"\r\n (click)=\"recentUserStory.toggle()\"></fa-icon>\r\n </span>\r\n </mat-card>\r\n <mat-progress-bar color=\"primary\" mode=\"indeterminate\" *ngIf=\"anyOperationInProgressForAutoLogging$|async\">\r\n </mat-progress-bar> -->\r\n <!-- <div fxFlex class=\"ml-05\" *ngIf=\"userStory\">\r\n <fa-icon class=\"caret-size\" style=\"color:#3da8b5\" icon=\"caret-down\" [satPopoverAnchorFor]=\"recentUserStory\"\r\n (click)=\"recentUserStory.toggle()\"></fa-icon>\r\n </div>\r\n <sat-popover #recentUserStory hasBackdrop backdropClass=\"us-popover\"> \r\n <mat-card>\r\n <div *ngFor=\"let userStory of (userStories$ | async | slice:0:5)\" style=\"min-width: 1000px;\" class=\"view-us\">\r\n <gc-userstory-summary style=\"width: -webkit-fill-available;background-color: beige;\"\r\n [userStory]=\"userStory\" [isSubTasksPage]=false [isLoading]=\"(anyOperationInProgressForAutoLogging$|async)\"\r\n [isUserStoriesPage]=true (updateAutoLog)=\"LogAction($event)\" [isShow]=\"false\" (close)=\"recentUserStory.close()\">\r\n </gc-userstory-summary>\r\n </div>\r\n </mat-card>\r\n </sat-popover>\r\n </div> -->\r\n <!-- View Loader -->\r\n <div class=\"view-loader\" *ngIf=\"isModuleLoading\">\r\n <div class=\"spinner\">\r\n <div class=\"double-bounce1 mat-bg-accent\"></div>\r\n <div class=\"double-bounce2 mat-bg-primary\"></div>\r\n </div>\r\n </div>\r\n <!-- View outlet -->\r\n <div id=\"btrak-preloader\" *ngIf=\"loading\">\r\n <span class=\"preloading-text\">\r\n {{ 'LOADINGPLEASEWAIT' | translate }} ({{totalLoadingTime}} {{ 'SECONDS' | translate }})\r\n </span>\r\n <div id=\"btrak-loader\" *ngIf=\"loading\">\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- View overlay for mobile navigation -->\r\n <div class=\"sidebar-backdrop\" [ngClass]=\"{'visible': layoutConf.sidebarStyle !== 'closed' && layoutConf.isMobile}\"\r\n (click)=\"closeSidebar()\"></div>\r\n\r\n <!-- Notificaation bar -->\r\n <mat-sidenav #sidenav mode=\"side\" opened class=\"example-sidenav\" [fixedInViewport]=\"true\" [fixedTopGap]=\"45\"\r\n [fixedBottomGap]=\"0\" class=\"side-nav-color\" id=\"style-1\">\r\n <app-sidebar></app-sidebar>\r\n </mat-sidenav>\r\n </mat-sidenav-container>\r\n</div>", components: [{ type: i11.HeaderTopComponent, selector: "app-header-top", inputs: ["notificPanel"] }, { type: i12.ɵb, selector: "ngx-ui-loader", inputs: ["bgsColor", "bgsOpacity", "bgsPosition", "bgsSize", "bgsType", "fgsColor", "fgsPosition", "fgsSize", "fgsType", "gap", "loaderId", "logoPosition", "logoSize", "logoUrl", "overlayBorderRadius", "overlayColor", "pbColor", "pbDirection", "pbThickness", "hasProgressBar", "text", "textColor", "textPosition"] }, { type: i13.MatSidenavContainer, selector: "mat-sidenav-container", exportAs: ["matSidenavContainer"] }, { type: i14.SidebarTopComponent, selector: "app-sidebar-top" }, { type: i15.HeaderSideComponent, selector: "app-header-side", inputs: ["notificPanel"], outputs: ["opened"] }, { type: i13.MatSidenav, selector: "mat-sidenav", inputs: ["fixedInViewport", "fixedTopGap", "fixedBottomGap"], exportAs: ["matSidenav"] }, { type: i16.SideBarComponent, selector: "app-sidebar" }], directives: [{ type: i17.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i18.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i19.PerfectScrollbarDirective, selector: "[perfectScrollbar]", inputs: ["disabled", "perfectScrollbar"], outputs: ["psScrollY", "psScrollX", "psScrollUp", "psScrollDown", "psScrollLeft", "psScrollRight", "psYReachEnd", "psYReachStart", "psXReachEnd", "psXReachStart"], exportAs: ["ngxPerfectScrollbar"] }, { type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }], pipes: { "translate": i2.TranslatePipe } });
|
|
240
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: AdminLayoutComponent, decorators: [{
|
|
241
|
+
type: Component,
|
|
242
|
+
args: [{
|
|
243
|
+
selector: "app-admin-layout",
|
|
244
|
+
templateUrl: "./admin-layout.template.html"
|
|
245
|
+
}]
|
|
246
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.TranslateService }, { type: i3.LayoutService }, { type: i4.Store }, { type: i5.CookieService }, { type: i6.Actions }, { type: i7.Location }, { type: i8.CommonService }, { type: i9.PubNubAngular }, { type: i10.SignalrService }]; }, propDecorators: { onResize: [{
|
|
247
|
+
type: HostListener,
|
|
248
|
+
args: ["window:resize", ['$event']]
|
|
249
|
+
}] } });
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvYWRtaW4tbGF5b3V0L2FkbWluLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2FkbWluLWxheW91dC9hZG1pbi1sYXlvdXQudGVtcGxhdGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQyxZQUFZLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFVLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEdBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUt4TCxvREFBb0Q7QUFDcEQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUseUJBQXlCLEVBQTZCLE1BQU0sNENBQTRDLENBQUM7QUFFaEosT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUkzRSxPQUFPLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtE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QUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BDO1FBQ0QsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbEM7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNuQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBQ0QsWUFBWTtRQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUM7WUFDOUIsWUFBWSxFQUFFLFFBQVE7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ1YsQ0FBQzs7aUhBMVBVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHNIQy9CakMsbXZPQXlITTsyRkQxRk8sb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSw4QkFBOEI7aUJBQzVDOzJVQThLQyxRQUFRO3NCQUZQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEFmdGVyVmlld0luaXQsIFZpZXdDaGlsZCwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQsIFJvdXRlQ29uZmlnTG9hZFN0YXJ0LCBSb3V0ZUNvbmZpZ0xvYWRFbmQsIFJlc29sdmVTdGFydCwgUmVzb2x2ZUVuZCwgTmF2aWdhdGlvblN0YXJ0LCBOYXZpZ2F0aW9uQ2FuY2VsLCBOYXZpZ2F0aW9uRXJyb3IsIEV2ZW50LCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2XCI7XHJcbmltcG9ydCB7IE1lZGlhQ2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL2ZsZXgtbGF5b3V0XCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG4vLyBpbXBvcnQgUGVyZmVjdFNjcm9sbGJhciBmcm9tICdwZXJmZWN0LXNjcm9sbGJhcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xyXG5pbXBvcnQgeyBVc2VyRGV0YWlsc0ZldGNoZWRBZnRlckxvZ2luLCBBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLCBVc2VySW5pdGlhbERldGFpbHNGZXRjaGVkIH0gZnJvbSBcIi4uLy4uL3N0b3JlL2FjdGlvbnMvYXV0aGVudGljYXRpb24uYWN0aW9uc1wiO1xyXG5pbXBvcnQgeyBDb29raWVTZXJ2aWNlIH0gZnJvbSBcIm5neC1jb29raWUtc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBY3Rpb25zLCBvZlR5cGUgfSBmcm9tIFwiQG5ncngvZWZmZWN0c1wiO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgU29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsIH0gZnJvbSBcIi4uLy4uL21vZGVscy9zb2Z0bGFiZWxzLW1vZGVsXCJcclxuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVXNlclN0b3J5IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3VzZXJTdG9yeSc7XHJcbmltcG9ydCAqIGFzIFNoYXJlZE1vZHVsZVN0YXRlIGZyb20gXCIuLi8uLi9zdG9yZS9yZWR1Y2Vycy9pbmRleFwiO1xyXG5pbXBvcnQgJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9oZWxwZXJzL2ZvbnRhd2Vzb21lLWljb25zJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlUHJvcGVydGllcyB9IGZyb20gJy4uLy4uLy4uL2dsb2JhbGRlcGVuZGVuY2llcy9jb25zdGFudHMvbG9jYWxzdG9yYWdlLXByb3BlcnRpZXMnO1xyXG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tbW9uLXVzZWQuc2VydmljZSc7XHJcbmltcG9ydCB7IFB1Yk51YkFuZ3VsYXIgfSBmcm9tICdwdWJudWItYW5ndWxhcjInO1xyXG5pbXBvcnQgeyBTUElOTkVSIH0gZnJvbSAnbmd4LXVpLWxvYWRlcic7XHJcbmltcG9ydCB7IFNpZ25hbHJTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3NpZ25hbHIuc2VydmljZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYXBwLWFkbWluLWxheW91dFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWRtaW4tbGF5b3V0LnRlbXBsYXRlLmh0bWxcIlxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEFkbWluTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBpc01vZHVsZUxvYWRpbmc6IEJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIG1vZHVsZUxvYWRlclN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbGF5b3V0Q29uZlN1YjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcm91dGVyRXZlbnRTdWI6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG1lZGlhU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgc29mdExhYmVscyQ6IE9ic2VydmFibGU8U29mdExhYmVsQ29uZmlndXJhdGlvbk1vZGVsW10+O1xyXG4gIHNvZnRMYWJlbHM6IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbFtdO1xyXG4gIC8vIHByaXZhdGUgc2lkZWJhclBTOiBQZXJmZWN0U2Nyb2xsYmFyO1xyXG5cclxuICAvLyBwcml2YXRlIGJvZHlQUzogUGVyZmVjdFNjcm9sbGJhcjtcclxuICAvLyBwcml2YXRlIGhlYWRlckZpeGVkQm9keVBTOiBQZXJmZWN0U2Nyb2xsYmFyO1xyXG4gIHB1YmxpYyBzY3JvbGxDb25maWcgPSB7fTtcclxuICBwdWJsaWMgbGF5b3V0Q29uZjogYW55ID0ge307XHJcbiAgZGlzcGxheTogYm9vbGVhbjtcclxuICB1c2VyU3RvcmllcyQ6IE9ic2VydmFibGU8VXNlclN0b3J5W10+O1xyXG4gIHNob3c6IGJvb2xlYW47XHJcbiAgdXNlclN0b3JpZXM6IFVzZXJTdG9yeVtdO1xyXG4gIHVzZXJTdG9yeTogVXNlclN0b3J5O1xyXG4gIGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgcHVibGljIG5nRGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGFzaGJvYXJkUGFnZTogYm9vbGVhbjtcclxuICBiZ2NvbG9yOiBhbnk7XHJcbiAgcHJpdmF0ZSBzdWI6IFN1YnNjcmlwdGlvbjtcclxuICB1c2Vyc3RvcnkgPSAndXNlcnN0b3J5JztcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgdG90YWxMb2FkaW5nVGltZTogbnVtYmVyID0gMDtcclxuICBpbnRlcnZhbDtcclxuICBzcGlubmVyVHlwZSA9IFNQSU5ORVIuY2lyY2xlO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgbGF5b3V0OiBMYXlvdXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8U2hhcmVkTW9kdWxlU3RhdGUuU3RhdGU+LFxyXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlOiBDb29raWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhY3Rpb25VcGRhdGVzJDogQWN0aW9ucyxcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBwdWJudWI6IFB1Yk51YkFuZ3VsYXIsXHJcbiAgICBwcml2YXRlIHNpZ25hbHI6IFNpZ25hbHJTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgLy8gbGV0IGNvbklkID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnY29uZWN0aW9uSWQnKTtcclxuICAgIC8vIGlmKCFjb25JZCkge1xyXG4gICAgICB0aGlzLnNpZ25hbHIuaW5pdGlhbGl6ZVNpZ25hbFJDb25uZWN0aW9uKCk7XHJcbiAgICAvLyB9XHJcbiAgICBsZXQgZW52aXJvbm1lbnQgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuRW52aXJvbm1lbnQpKTtcclxuICAgIGxldCBjb21wYW55U2V0dGluZ3MgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkNvbXBhbnlTZXR0aW5ncyk7XHJcbiAgICBpZiAoIWNvbXBhbnlTZXR0aW5ncyB8fCBjb21wYW55U2V0dGluZ3MgPT0gJ251bGwnIHx8IGNvbXBhbnlTZXR0aW5ncyA9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIHB1Ym51Yi5pbml0KHtcclxuICAgICAgICBwdWJsaXNoS2V5OiBlbnZpcm9ubWVudC5wdWJsaXNoS2V5LFxyXG4gICAgICAgIHN1YnNjcmliZUtleTogZW52aXJvbm1lbnQuc3Vic2NyaWJlS2V5XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY29tU2V0ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLkNvbXBhbnlTZXR0aW5ncykpO1xyXG4gICAgICB2YXIgcHVibGlzaEtleSA9IGNvbVNldC5maW5kKGkgPT4gaS5rZXkgPT0gXCJQdWJudWJQdWJsaXNoS2V5XCIpO1xyXG4gICAgICB2YXIgc3Vic2NyaWJlS2V5ID0gY29tU2V0LmZpbmQoaSA9PiBpLmtleSA9PSBcIlB1Ym51YlN1YnNjcmliZUtleVwiKVxyXG4gICAgICBpZiAoKHB1Ymxpc2hLZXkgJiYgcHVibGlzaEtleS52YWx1ZSkgJiYgKHN1YnNjcmliZUtleSAmJiBzdWJzY3JpYmVLZXkudmFsdWUpKSB7XHJcbiAgICAgICAgcHVibnViLmluaXQoe1xyXG4gICAgICAgICAgcHVibGlzaEtleTogcHVibGlzaEtleS52YWx1ZSxcclxuICAgICAgICAgIHN1YnNjcmliZUtleTogc3Vic2NyaWJlS2V5LnZhbHVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcHVibnViLmluaXQoe1xyXG4gICAgICAgICAgcHVibGlzaEtleTogZW52aXJvbm1lbnQucHVibGlzaEtleSxcclxuICAgICAgICAgIHN1YnNjcmliZUtleTogZW52aXJvbm1lbnQuc3Vic2NyaWJlS2V5XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIC8vIENsb3NlIHNpZGVuYXYgYWZ0ZXIgcm91dGUgY2hhbmdlIGluIG1vYmlsZVxyXG4gICAgdGhpcy5yb3V0ZXJFdmVudFN1YiA9IHJvdXRlci5ldmVudHNcclxuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJvdXRlQ2hhbmdlOiBOYXZpZ2F0aW9uRW5kKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sYXlvdXQuYWRqdXN0TGF5b3V0KHsgcm91dGU6IHJvdXRlQ2hhbmdlLnVybCB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgLy8gVHJhbnNsYXRvciBpbml0XHJcbiAgICBsZXQgY3VycmVudEN1bHR1cmUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuQ3VycmVudEN1bHR1cmUpO1xyXG5cclxuICAgIGlmIChjdXJyZW50Q3VsdHVyZSA9PT0gJ251bGwnIHx8IGN1cnJlbnRDdWx0dXJlID09PSAndW5kZWZpbmVkJykge1xyXG4gICAgICBjdXJyZW50Q3VsdHVyZSA9ICdlbic7XHJcbiAgICB9XHJcbiAgICB0cmFuc2xhdGUudXNlKGN1cnJlbnRDdWx0dXJlKTtcclxuXHJcblxyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIHN3aXRjaCAodHJ1ZSkge1xyXG4gICAgICAgIGNhc2UgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQ6IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsTG9hZGluZ1RpbWUgPSAwO1xyXG4gICAgICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNhc2UgZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kOiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25DYW5jZWw6XHJcbiAgICAgICAgY2FzZSBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FcnJvcjoge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh2YWwgPT4ge1xyXG4gICAgICBpZiAobG9jYXRpb24ucGF0aCgpICE9IFwiXCIpIHtcclxuICAgICAgICBpZiAobG9jYXRpb24ucGF0aCgpLmluY2x1ZGVzKCcvZGFzaGJvYXJkLW1hbmFnZW1lbnQvZGFzaGJvYXJkLycpKSB7XHJcbiAgICAgICAgICB0aGlzLmRhc2hib2FyZFBhZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5iZ2NvbG9yID0gJ25vbmUnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZGFzaGJvYXJkUGFnZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5iZ2NvbG9yID0gJ2JlaWdlJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIGlmICh0aGlzLmNvb2tpZVNlcnZpY2UuY2hlY2soTG9jYWxTdG9yYWdlUHJvcGVydGllcy5Vc2VyTW9kZWwpKSB7XHJcbiAgICAvLyAgIGxldCBkYXRhID0gSlNPTi5wYXJzZSh0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlck1vZGVsKSk7XHJcbiAgICAvLyAgIGlmIChkYXRhICYmIGRhdGEgIT0gJ251bGwnICYmIGRhdGEgIT0gJ3VuZGVmaW5lZCcpXHJcbiAgICAvLyAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChuZXcgVXNlckRldGFpbHNGZXRjaGVkQWZ0ZXJMb2dpbihkYXRhKSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgaWYgKChsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLlVzZXJNb2RlbCkgIT0gbnVsbCAmJiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShMb2NhbFN0b3JhZ2VQcm9wZXJ0aWVzLlVzZXJNb2RlbCkgIT0gdW5kZWZpbmVkKVxyXG4gICAgICAmJiAhbG9jYWxTdG9yYWdlLmhhc093blByb3BlcnR5KExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlclJvbGVGZWF0dXJlcykpIHtcclxuICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKExvY2FsU3RvcmFnZVByb3BlcnRpZXMuVXNlck1vZGVsKSk7XHJcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IFVzZXJEZXRhaWxzRmV0Y2hlZEFmdGVyTG9naW4oZGF0YSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYWN0aW9uVXBkYXRlcyRcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdEZXN0cm95ZWQkKSxcclxuICAgICAgICBvZlR5cGUoQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcy5DbGVhckRlbW9EYXRhQ29tcGxldGVkKSxcclxuICAgICAgICB0YXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5jb21wYW55SWQpIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRTb2Z0TGFiZWxzKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5nZXRTb2Z0TGFiZWxDb25maWd1cmF0aW9ucygpO1xyXG4gICAgdGhpcy5sYXlvdXRDb25mID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZjtcclxuICAgIC8vIHRoaXMubGF5b3V0LmFkanVzdExheW91dCgpO1xyXG5cclxuICAgIC8vIEZPUiBNT0RVTEUgTE9BREVSIEZMQUdcclxuICAgIHRoaXMubW9kdWxlTG9hZGVyU3ViID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBldmVudCBpbnN0YW5jZW9mIFJvdXRlQ29uZmlnTG9hZFN0YXJ0IHx8XHJcbiAgICAgICAgZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlU3RhcnRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZHVsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBSb3V0ZUNvbmZpZ0xvYWRFbmQgfHwgZXZlbnQgaW5zdGFuY2VvZiBSZXNvbHZlRW5kKSB7XHJcbiAgICAgICAgdGhpcy5pc01vZHVsZUxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwid2luZG93OnJlc2l6ZVwiLCBbJyRldmVudCddKVxyXG5cclxuICBvblJlc2l6ZShldmVudCkge1xyXG4gICAgdGhpcy5sYXlvdXQuYWRqdXN0TGF5b3V0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIE9wZW5lZChldmVudCkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRTb2Z0TGFiZWxDb25maWd1cmF0aW9ucygpIHtcclxuICAgIHRoaXMuc29mdExhYmVscyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ1NvZnRMYWJlbHMnKSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb2Z0TGFiZWxzKCkge1xyXG4gICAgbGV0IG1vZGVsID0gbmV3IFNvZnRMYWJlbENvbmZpZ3VyYXRpb25Nb2RlbCgpO1xyXG4gICAgbW9kZWwuc2VhcmNoVGV4dCA9IG51bGw7XHJcbiAgICB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0U29mdExhYmVscyhtb2RlbCkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnU29mdExhYmVscycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgLy8gdGhpcy5sYXlvdXRDb25mU3ViID0gdGhpcy5sYXlvdXQubGF5b3V0Q29uZiQuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XHJcbiAgICAvLyAgIC8vIHRoaXMuaW5pdEJvZHlQUyhjaGFuZ2UpXHJcbiAgICAvLyB9KVxyXG4gIH1cclxuXHJcbiAgLy8gaW5pdEJvZHlQUyhsYXlvdXRDb25mOmFueSA9IHt9KSB7XHJcbiAgLy8gICBpZihsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICdzaWRlJyAmJiBsYXlvdXRDb25mLnRvcGJhckZpeGVkKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLmJvZHlQUykgdGhpcy5ib2R5UFMuZGVzdHJveSgpO1xyXG4gIC8vICAgICBpZiAodGhpcy5oZWFkZXJGaXhlZEJvZHlQUykgdGhpcy5oZWFkZXJGaXhlZEJvZHlQUy5kZXN0cm95KCk7XHJcbiAgLy8gICAgIHRoaXMuaGVhZGVyRml4ZWRCb2R5UFMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcignLnJpZ2h0c2lkZS1jb250ZW50LWhvbGQnLCB7XHJcbiAgLy8gICAgICAgc3VwcHJlc3NTY3JvbGxYOiB0cnVlXHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgICB0aGlzLnNjcm9sbFRvVG9wKCcucmlnaHRzaWRlLWNvbnRlbnQtaG9sZCcpO1xyXG4gIC8vICAgfSBlbHNlIHtcclxuICAvLyAgICAgaWYgKHRoaXMuYm9keVBTKSB0aGlzLmJvZHlQUy5kZXN0cm95KCk7XHJcbiAgLy8gICAgIGlmICh0aGlzLmhlYWRlckZpeGVkQm9keVBTKSB0aGlzLmhlYWRlckZpeGVkQm9keVBTLmRlc3Ryb3koKTtcclxuICAvLyAgICAgdGhpcy5ib2R5UFMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcignLm1haW4tY29udGVudC13cmFwJywge1xyXG4gIC8vICAgICAgIHN1cHByZXNzU2Nyb2xsWDogdHJ1ZVxyXG4gIC8vICAgICB9KTtcclxuICAvLyAgICAgdGhpcy5zY3JvbGxUb1RvcCgnLm1haW4tY29udGVudC13cmFwJyk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG4gIHNjcm9sbFRvVG9wKHNlbGVjdG9yOiBzdHJpbmcpIHtcclxuICAgIGlmIChkb2N1bWVudCkge1xyXG4gICAgICBsZXQgZWxlbWVudCA9IDxIVE1MRWxlbWVudD5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKTtcclxuICAgICAgZWxlbWVudC5zY3JvbGxUb3AgPSAwO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLm1vZHVsZUxvYWRlclN1Yikge1xyXG4gICAgICB0aGlzLm1vZHVsZUxvYWRlclN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubGF5b3V0Q29uZlN1Yikge1xyXG4gICAgICB0aGlzLmxheW91dENvbmZTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJvdXRlckV2ZW50U3ViKSB7XHJcbiAgICAgIHRoaXMucm91dGVyRXZlbnRTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnN1Yikge1xyXG4gICAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuICBjbG9zZVNpZGViYXIoKSB7XHJcbiAgICB0aGlzLmxheW91dC5wdWJsaXNoTGF5b3V0Q2hhbmdlKHtcclxuICAgICAgc2lkZWJhclN0eWxlOiBcImNsb3NlZFwiXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHN0YXJ0VGltZXIoKSB7XHJcbiAgICB0aGlzLmludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xyXG4gICAgICB0aGlzLnRvdGFsTG9hZGluZ1RpbWUrKztcclxuICAgIH0sIDEwMDApXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHAtYWRtaW4td3JhcFwiIFtkaXJdPSdsYXlvdXRDb25mLmRpcic+XHJcbiAgPCEtLSBIZWFkZXIgZm9yIHRvcCBuYXZpZ2F0aW9uIGxheW91dCAtLT5cclxuICA8IS0tIE9OTFkgUkVRVUlSRUQgRk9SICoqVE9QKiogTkFWSUdBVElPTiBMQVlPVVQgLS0+XHJcbiAgPGFwcC1oZWFkZXItdG9wICpuZ0lmPVwibGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAndG9wJ1wiIFtub3RpZmljUGFuZWxdPVwic2lkZW5hdlwiPlxyXG4gIDwvYXBwLWhlYWRlci10b3A+XHJcbiAgPG5neC11aS1sb2FkZXIgZmdzU2l6ZT1cIjE4MFwiIFtmZ3NUeXBlXT1cInNwaW5uZXJUeXBlXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9uZ3gtdWktbG9hZGVyPlxyXG4gIDwhLS0gTWFpbiBDb250YWluZXIgLS0+XHJcbiAgPG1hdC1zaWRlbmF2LWNvbnRhaW5lciBbZGlyXT0nbGF5b3V0Q29uZi5kaXInIGNsYXNzPVwiYXBwLWFkbWluLWNvbnRhaW5lciBhcHAtc2lkZS1uYXYtY29udGFpbmVyIG1hdC1kcmF3ZXItdHJhbnNpdGlvblwiXHJcbiAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAnbmF2aWdhdGlvbi10b3AnOiBsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICd0b3AnLFxyXG4gICAgJ3NpZGViYXItZnVsbCc6IGxheW91dENvbmYuc2lkZWJhclN0eWxlID09PSAnZnVsbCcsXHJcbiAgICAnc2lkZWJhci1jb21wYWN0JzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09ICdjb21wYWN0JyAmJiBsYXlvdXRDb25mLm5hdmlnYXRpb25Qb3MgPT09ICdzaWRlJyxcclxuICAgICdzaWRlYmFyLWNvbXBhY3QtYmlnJzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09ICdjb21wYWN0LWJpZycgJiYgbGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAnc2lkZScsXHJcbiAgICAnbGF5b3V0LWludHJhbnNpdGlvbic6IGxheW91dENvbmYubGF5b3V0SW5UcmFuc2l0aW9uLFxyXG4gICAgJ3NpZGViYXItb3BlbmVkJzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgIT09ICdjbG9zZWQnICYmIGxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3NpZGUnLFxyXG4gICAgJ3NpZGViYXItY2xvc2VkJzogbGF5b3V0Q29uZi5zaWRlYmFyU3R5bGUgPT09ICdjbG9zZWQnLFxyXG4gICAgJ2ZpeGVkLXRvcGJhcic6IGxheW91dENvbmYudG9wYmFyRml4ZWQgJiYgbGF5b3V0Q29uZi5uYXZpZ2F0aW9uUG9zID09PSAnc2lkZSdcclxuICB9XCI+XHJcbiAgICA8IS0tIFNJREVCQVIgLS0+XHJcbiAgICA8IS0tIE9OTFkgUkVRVUlSRUQgRk9SICoqU0lERSoqIE5BVklHQVRJT04gTEFZT1VUIC0tPlxyXG4gICAgPCEtLSA8YXBwLXNpZGViYXItc2lkZSAqbmdJZj1cImxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3NpZGUnXCI+PC9hcHAtc2lkZWJhci1zaWRlPiAtLT5cclxuXHJcbiAgICA8IS0tIFRvcCBuYXZpZ2F0aW9uIGxheW91dCAobmF2aWdhdGlvbiBmb3IgbW9iaWxlIHNjcmVlbikgLS0+XHJcbiAgICA8IS0tIE9OTFkgUkVRVUlSRUQgRk9SICoqVE9QKiogTkFWSUdBVElPTiBNT0JJTEUgTEFZT1VUIC0tPlxyXG4gICAgPGFwcC1zaWRlYmFyLXRvcCAqbmdJZj1cImxheW91dENvbmYubmF2aWdhdGlvblBvcyA9PT0gJ3RvcCcgJiYgbGF5b3V0Q29uZi5pc01vYmlsZVwiPjwvYXBwLXNpZGViYXItdG9wPlxyXG5cclxuICAgIDwhLS0gQXBwIGNvbnRlbnQgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpbi1jb250ZW50LXdyYXBcIiBbcGVyZmVjdFNjcm9sbGJhcl09XCJzY3JvbGxDb25maWdcIiBbZGlzYWJsZWRdPVwibGF5b3V0Q29uZi50b3BiYXJGaXhlZFwiPlxyXG4gICAgICA8IS0tIEhlYWRlciBmb3Igc2lkZSBuYXZpZ2F0aW9uIGxheW91dCAtLT5cclxuICAgICAgPCEtLSBPTkxZIFJFUVVJUkVEIEZPUiAqKlNJREUqKiBOQVZJR0FUSU9OIExBWU9VVCAtLT5cclxuICAgICAgPGFwcC1oZWFkZXItc2lkZSAob3BlbmVkKT1cIk9wZW5lZCgkZXZlbnQpXCIgW25vdGlmaWNQYW5lbF09XCJzaWRlbmF2XCI+XHJcbiAgICAgIDwvYXBwLWhlYWRlci1zaWRlPlxyXG5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXItMVwiICpuZ0lmPVwiIWRhc2hib2FyZFBhZ2VcIj5cclxuICAgICAgICA8Z2MtdXNlcnN0b3J5LXN1bW1hcnkgKm5nSWY9XCJ1c2VyU3RvcnlcIiBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO2JhY2tncm91bmQtY29sb3I6IGJlaWdlO1wiXHJcbiAgICAgICAgICBbdXNlclN0b3J5XT1cInVzZXJTdG9yeVwiIFtpc1N1YlRhc2tzUGFnZV09ZmFsc2UgW2lzTG9hZGluZ109XCIoYW55T3BlcmF0aW9uSW5Qcm9ncmVzc0ZvckF1dG9Mb2dnaW5nJHxhc3luYylcIlxyXG4gICAgICAgICAgW2lzVXNlclN0b3JpZXNQYWdlXT1mYWxzZSAodXBkYXRlQXV0b0xvZyk9XCJMb2dBY3Rpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvZ2MtdXNlcnN0b3J5LXN1bW1hcnk+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiF1c2VyU3RvcnlcIj5cclxuICAgICAgICAgIFlvdSBhcmUgbm90IHN0YXJ0ZWQgYW55IHVzZXJzdG9yeSB5ZXQhIFBsZWFzZSBzdGFydCB3b3JrISFcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibWwtMDVcIj5cclxuICAgICAgICAgIDxmYS1pY29uIGNsYXNzPVwiY2FyZXQtc2l6ZVwiIHN0eWxlPVwiY29sb3I6IzNkYThiNVwiIGljb249XCJjYXJldC1kb3duXCIgW3NhdFBvcG92ZXJBbmNob3JGb3JdPVwicmVjZW50VXNlclN0b3J5XCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJyZWNlbnRVc2VyU3RvcnkudG9nZ2xlKClcIj48L2ZhLWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHNhdC1wb3BvdmVyICNyZWNlbnRVc2VyU3RvcnkgaGFzQmFja2Ryb3AgIGJhY2tkcm9wQ2xhc3M9XCJ1cy1wb3BvdmVyXCI+IFxyXG4gICAgICAgICAgICA8bWF0LWNhcmQ+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB1c2VyU3Rvcnkgb2YgKHVzZXJTdG9yaWVzJCB8IGFzeW5jIHwgc2xpY2U6MDo1KVwiIHN0eWxlPVwibWluLXdpZHRoOiAxMDAwcHg7XCIgY2xhc3M9XCJ2aWV3LXVzXCI+XHJcbiAgICAgICAgICAgIDxnYy11c2Vyc3Rvcnktc3VtbWFyeSBzdHlsZT1cIndpZHRoOiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO2JhY2tncm91bmQtY29sb3I6IGJlaWdlO1wiXHJcbiAgICAgICAgICAgICAgW3VzZXJTdG9yeV09XCJ1c2VyU3RvcnlcIiBbaXNTdWJUYXNrc1BhZ2VdPWZhbHNlIFtpc0xvYWRpbmddPVwiKGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmMpXCJcclxuICAgICAgICAgICAgICBbaXNVc2VyU3Rvcmllc1BhZ2VdPXRydWUgKHVwZGF0ZUF1dG9Mb2cpPVwiTG9nQWN0aW9uKCRldmVudClcIiBbaXNTaG93XT1cImZhbHNlXCIgKGNsb3NlKT1cInJlY2VudFVzZXJTdG9yeS5jbG9zZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZ2MtdXNlcnN0b3J5LXN1bW1hcnk+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L21hdC1jYXJkPlxyXG4gICAgICAgIDwvc2F0LXBvcG92ZXI+XHJcbiAgICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodHNpZGUtY29udGVudC1ob2xkXCIgW3BlcmZlY3RTY3JvbGxiYXJdPVwic2Nyb2xsQ29uZmlnXCIgW2Rpc2FibGVkXT1cIiFsYXlvdXRDb25mLnRvcGJhckZpeGVkXCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2JsdXItb24tb3BlbmVkJzogZGlzcGxheX1cIiBbbmdDbGFzc109XCJ7J3Nob3ctaW4tZGFzaGJvYXJkJzpkYXNoYm9hcmRQYWdlfVwiPlxyXG4gICAgICAgIDwhLS0gPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJtci0xXCIgKm5nSWY9XCIhZGFzaGJvYXJkUGFnZVwiIFtuZ1N0eWxlXT1cInsnbWFyZ2luLWxlZnQnOiAnOTBweCd9XCIgXHJcbiAgICAgIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1jb2xvcic6IHVzZXJTdG9yeSA/ICdiZWlnZScgOiAnbm9uZScgfVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OjkwcHggIWltcG9ydGFudFwiPlxyXG4gICAgICAgIDxnYy11c2Vyc3Rvcnktc3VtbWFyeSBmeEZsZXg9XCI5MFwiICpuZ0lmPVwidXNlclN0b3J5XCIgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtiYWNrZ3JvdW5kLWNvbG9yOiBiZWlnZTtcIlxyXG4gICAgICAgICAgW3VzZXJTdG9yeV09XCJ1c2VyU3RvcnlcIiBbaXNTdWJUYXNrc1BhZ2VdPWZhbHNlIFtpc0xvYWRpbmddPVwiKGFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmMpXCJcclxuICAgICAgICAgIFtpc1VzZXJTdG9yaWVzUGFnZV09ZmFsc2UgKHVwZGF0ZUF1dG9Mb2cpPVwiTG9nQWN0aW9uKCRldmVudClcIj5cclxuICAgICAgICA8L2djLXVzZXJzdG9yeS1zdW1tYXJ5PlxyXG4gICAgICAgIDxtYXQtY2FyZCAqbmdJZj1cIiF1c2VyU3RvcnlcIiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7bGVmdDogLTc1cHg7XCI+XHJcbiAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICBZb3UgYXJlIG5vdCBzdGFydGVkIGFueSB7eyB1c2Vyc3RvcnkgfCBzb2Z0TGFiZWxzUGlwZSA6IHNvZnRMYWJlbHN9fSB5ZXQhIFBsZWFzZSBzdGFydCB3b3JrISFcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0wNVwiPlxyXG4gICAgICAgICAgPGZhLWljb24gY2xhc3M9XCJjYXJldC1zaXplXCIgc3R5bGU9XCJjb2xvcjojM2RhOGI1XCIgaWNvbj1cImNhcmV0LWRvd25cIiBbc2F0UG9wb3ZlckFuY2hvckZvcl09XCJyZWNlbnRVc2VyU3RvcnlcIlxyXG4gICAgICAgICAgICAgKGNsaWNrKT1cInJlY2VudFVzZXJTdG9yeS50b2dnbGUoKVwiPjwvZmEtaWNvbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICAgPG1hdC1wcm9ncmVzcy1iYXIgY29sb3I9XCJwcmltYXJ5XCIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImFueU9wZXJhdGlvbkluUHJvZ3Jlc3NGb3JBdXRvTG9nZ2luZyR8YXN5bmNcIj5cclxuICAgICAgICA8L21hdC1wcm9ncmVzcy1iYXI+IC0tPlxyXG4gICAgICAgIDwhLS0gPGRpdiBmeEZsZXggY2xhc3M9XCJtbC0wNVwiICpuZ0lmPVwidXNlclN0b3J5XCI+XHJcbiAgICAgICAgICA8ZmEtaWNvbiBjbGFzcz1cImNhcmV0LXNpemVcIiBzdHlsZT1cImNvbG9yOiMzZGE4YjVcIiBpY29uPVwiY2FyZXQtZG93blwiIFtzYXRQb3BvdmVyQW5jaG9yRm9yXT1cInJlY2VudFVzZXJTdG9yeVwiXHJcbiAgICAgICAgICAgICAoY2xpY2spPVwicmVjZW50VXNlclN0b3J5LnRvZ2dsZSgpXCI+PC9mYS1pY29uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxzYXQtcG9wb3ZlciAjcmVjZW50VXNlclN0b3J5IGhhc0JhY2tkcm9wICBiYWNrZHJvcENsYXNzPVwidXMtcG9wb3ZlclwiPiBcclxuICAgICAgICAgICAgPG1hdC1jYXJkPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdXNlclN0b3J5IG9mICh1c2VyU3RvcmllcyQgfCBhc3luYyB8IHNsaWNlOjA6NSlcIiBzdHlsZT1cIm1pbi13aWR0aDogMTAwMHB4O1wiIGNsYXNzPVwidmlldy11c1wiPlxyXG4gICAgICAgICAgICA8Z2MtdXNlcnN0b3J5LXN1bW1hcnkgc3R5bGU9XCJ3aWR0aDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtiYWNrZ3JvdW5kLWNvbG9yOiBiZWlnZTtcIlxyXG4gICAgICAgICAgICAgIFt1c2VyU3RvcnldPVwidXNlclN0b3J5XCIgW2lzU3ViVGFza3NQYWdlXT1mYWxzZSBbaXNMb2FkaW5nXT1cIihhbnlPcGVyYXRpb25JblByb2dyZXNzRm9yQXV0b0xvZ2dpbmckfGFzeW5jKVwiXHJcbiAgICAgICAgICAgICAgW2lzVXNlclN0b3JpZXNQYWdlXT10cnVlICh1cGRhdGVBdXRvTG9nKT1cIkxvZ0FjdGlvbigkZXZlbnQpXCIgW2lzU2hvd109XCJmYWxzZVwiIChjbG9zZSk9XCJyZWNlbnRVc2VyU3RvcnkuY2xvc2UoKVwiPlxyXG4gICAgICAgICAgICA8L2djLXVzZXJzdG9yeS1zdW1tYXJ5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuICAgICAgICA8L3NhdC1wb3BvdmVyPlxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPCEtLSBWaWV3IExvYWRlciAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidmlldy1sb2FkZXJcIiAqbmdJZj1cImlzTW9kdWxlTG9hZGluZ1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdWJsZS1ib3VuY2UxIG1hdC1iZy1hY2NlbnRcIj48L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRvdWJsZS1ib3VuY2UyIG1hdC1iZy1wcmltYXJ5XCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tIFZpZXcgb3V0bGV0IC0tPlxyXG4gICAgICAgIDxkaXYgaWQ9XCJidHJhay1wcmVsb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJlbG9hZGluZy10ZXh0XCI+XHJcbiAgICAgICAgICAgIHt7ICdMT0FESU5HUExFQVNFV0FJVCcgfCB0cmFuc2xhdGUgfX0gKHt7dG90YWxMb2FkaW5nVGltZX19IHt7ICdTRUNPTkRTJyB8IHRyYW5zbGF0ZSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxkaXYgaWQ9XCJidHJhay1sb2FkZXJcIiAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPCEtLSBWaWV3IG92ZXJsYXkgZm9yIG1vYmlsZSBuYXZpZ2F0aW9uIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNpZGViYXItYmFja2Ryb3BcIiBbbmdDbGFzc109XCJ7J3Zpc2libGUnOiBsYXlvdXRDb25mLnNpZGViYXJTdHlsZSAhPT0gJ2Nsb3NlZCcgJiYgbGF5b3V0Q29uZi5pc01vYmlsZX1cIlxyXG4gICAgICAoY2xpY2spPVwiY2xvc2VTaWRlYmFyKClcIj48L2Rpdj5cclxuXHJcbiAgICA8IS0tIE5vdGlmaWNhYXRpb24gYmFyIC0tPlxyXG4gICAgPG1hdC1zaWRlbmF2ICNzaWRlbmF2IG1vZGU9XCJzaWRlXCIgb3BlbmVkIGNsYXNzPVwiZXhhbXBsZS1zaWRlbmF2XCIgW2ZpeGVkSW5WaWV3cG9ydF09XCJ0cnVlXCIgW2ZpeGVkVG9wR2FwXT1cIjQ1XCJcclxuICAgICAgW2ZpeGVkQm90dG9tR2FwXT1cIjBcIiBjbGFzcz1cInNpZGUtbmF2LWNvbG9yXCIgaWQ9XCJzdHlsZS0xXCI+XHJcbiAgICAgIDxhcHAtc2lkZWJhcj48L2FwcC1zaWRlYmFyPlxyXG4gICAgPC9tYXQtc2lkZW5hdj5cclxuICA8L21hdC1zaWRlbmF2LWNvbnRhaW5lcj5cclxuPC9kaXY+Il19
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Component, EventEmitter, Inject, Output, ViewEncapsulation, NgModuleFactory } from "@angular/core";
|
|
2
|
+
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
3
|
+
import { CustomAppBaseComponent } from '../../../globaldependencies/components/componentbase';
|
|
4
|
+
import * as _ from "underscore";
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/shell.modules.service";
|
|
7
|
+
import * as i2 from "@angular/material/dialog";
|
|
8
|
+
import * as i3 from "@angular/router";
|
|
9
|
+
import * as i4 from "@fortawesome/angular-fontawesome";
|
|
10
|
+
import * as i5 from "@snovasys/snova-ndc-dynamic";
|
|
11
|
+
export class WorkItemsDialogComponent extends CustomAppBaseComponent {
|
|
12
|
+
constructor(projectModulesService, compiler, vcr, reportsDialog, data, route) {
|
|
13
|
+
super();
|
|
14
|
+
this.projectModulesService = projectModulesService;
|
|
15
|
+
this.compiler = compiler;
|
|
16
|
+
this.vcr = vcr;
|
|
17
|
+
this.reportsDialog = reportsDialog;
|
|
18
|
+
this.data = data;
|
|
19
|
+
this.route = route;
|
|
20
|
+
this.closeReportsSheetPopup = new EventEmitter();
|
|
21
|
+
this.allWorkItemsinputs = {
|
|
22
|
+
isPopup: true
|
|
23
|
+
};
|
|
24
|
+
this.allWorkItemsoutputs = {
|
|
25
|
+
closePopUp: event => this.closeDialog(event)
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
onNoClick() {
|
|
29
|
+
this.reportsDialog.close();
|
|
30
|
+
this.closeReportsSheetPopup.emit(true);
|
|
31
|
+
}
|
|
32
|
+
closeDialog(event) {
|
|
33
|
+
this.reportsDialog.close();
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
this.injector = this.vcr.injector;
|
|
37
|
+
super.ngOnInit();
|
|
38
|
+
this.loadComponent();
|
|
39
|
+
}
|
|
40
|
+
loadComponent() {
|
|
41
|
+
// var modules = this.shellModulesService["modules"];
|
|
42
|
+
var loader = this.projectModulesService["modules"];
|
|
43
|
+
var modules = JSON.parse(localStorage.getItem("Modules"));
|
|
44
|
+
var module = _.find(modules, function (module) { return module.modulePackageName == 'ProjectPackageModule'; });
|
|
45
|
+
var path = loader[module.modulePackageName];
|
|
46
|
+
path()
|
|
47
|
+
.then(elementModuleOrFactory => {
|
|
48
|
+
if (elementModuleOrFactory instanceof NgModuleFactory) {
|
|
49
|
+
// if ViewEngine
|
|
50
|
+
return elementModuleOrFactory;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
try {
|
|
54
|
+
// if Ivy
|
|
55
|
+
return this.compiler.compileModuleAsync(elementModuleOrFactory);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}).then((moduleFactory) => {
|
|
62
|
+
const componentService = moduleFactory.moduleType.componentService;
|
|
63
|
+
var allComponentsInModule = componentService.components;
|
|
64
|
+
this.ngModuleRef = moduleFactory.create(this.injector);
|
|
65
|
+
var componentDetails = allComponentsInModule.find(elementInArray => elementInArray.name === "All work items");
|
|
66
|
+
this.widgetListinputs = {
|
|
67
|
+
isFromMyWork: true,
|
|
68
|
+
isMyWork: true
|
|
69
|
+
};
|
|
70
|
+
this.allWorkitemsComponent = this.ngModuleRef.componentFactoryResolver.resolveComponentFactory(componentDetails.componentTypeObject);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
WorkItemsDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: WorkItemsDialogComponent, deps: [{ token: i1.ShellModulesService }, { token: i0.Compiler }, { token: i0.ViewContainerRef }, { token: i2.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
75
|
+
WorkItemsDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.1", type: WorkItemsDialogComponent, selector: "work-items-dailogue", outputs: { closeReportsSheetPopup: "closeReportsSheetPopup" }, usesInheritance: true, ngImport: i0, template: "<div class=\"custom-dialog\">\r\n <div class=\"custom-close\" mat-dialog-close (click)=\"onNoClick()\">\r\n <fa-icon icon=\"times\" class=\"project-dialog\"></fa-icon>\r\n </div>\r\n</div>\r\n<div id=\"style-1\" class=\"user-dailog\" mat-dialog-content>\r\n <ndc-dynamic [ndcDynamicFactory]=\"allWorkitemsComponent\" [ndcDynamicComponent]=\"allWorkitemsComponent\"\r\n [ndcDynamicInjector]=\"injector\"\r\n [ndcDynamicInputs]=\"widgetListinputs\" [ndcDynamicOutputs]=\"allWorkItemsoutputs\">\r\n </ndc-dynamic>\r\n</div>", components: [{ type: i4.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "listItem", "rotate", "fixedWidth", "transform"] }, { type: i5.DynamicComponent, selector: "ndc-dynamic", inputs: ["ndcDynamicComponent", "ndcDynamicInjector", "ndcDynamicFactory", "ndcDynamicProviders", "ndcDynamicContent"], outputs: ["ndcDynamicCreated"] }], directives: [{ type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i5.DynamicDirective, selector: "[ndcDynamicInputs],[ndcDynamicOutputs],[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]", inputs: ["ndcDynamicInputs", "ngComponentOutletNdcDynamicInputs", "ndcDynamicOutputs", "ngComponentOutletNdcDynamicOutputs", "ndcDynamicFactory"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: WorkItemsDialogComponent, decorators: [{
|
|
77
|
+
type: Component,
|
|
78
|
+
args: [{
|
|
79
|
+
selector: "work-items-dailogue",
|
|
80
|
+
templateUrl: "all-work-items-dialog.component.html",
|
|
81
|
+
encapsulation: ViewEncapsulation.None,
|
|
82
|
+
}]
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.ShellModulesService }, { type: i0.Compiler }, { type: i0.ViewContainerRef }, { type: i2.MatDialogRef }, { type: undefined, decorators: [{
|
|
84
|
+
type: Inject,
|
|
85
|
+
args: [MAT_DIALOG_DATA]
|
|
86
|
+
}] }, { type: i3.ActivatedRoute }]; }, propDecorators: { closeReportsSheetPopup: [{
|
|
87
|
+
type: Output
|
|
88
|
+
}] } });
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLXdvcmstaXRlbXMtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9zaGVsbC1jb21wb25lbnRzL2NvbXBvbmVudHMvYWxsLXdvcmstaXRlbXMtZGlhbG9nL2FsbC13b3JrLWl0ZW1zLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2FsbC13b3JrLWl0ZW1zLWRpYWxvZy9hbGwtd29yay1pdGVtcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sRUFBUSxpQkFBaUIsRUFBd0QsZUFBZSxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUNwTixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRTlGLE9BQU8sS0FBSyxDQUFDLE1BQU0sWUFBWSxDQUFDOzs7Ozs7O0FBU2hDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxzQkFBc0I7SUFlaEUsWUFDWSxxQkFBMEMsRUFBVSxRQUFrQixFQUN0RSxHQUFxQixFQUN0QixhQUFxRCxFQUM1QixJQUFTLEVBQVUsS0FBcUI7UUFDeEUsS0FBSyxFQUFFLENBQUM7UUFKQSwwQkFBcUIsR0FBckIscUJBQXFCLENBQXFCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUN0RSxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBd0M7UUFDNUIsU0FB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bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsV0FBVyxFQUFFLHNDQUFzQztvQkFDbkQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3hDOzswQkFxQlEsTUFBTTsyQkFBQyxlQUFlO3lFQWxCakIsc0JBQXNCO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgT25Jbml0LCBPdXRwdXQsIFR5cGUsIFZpZXdFbmNhcHN1bGF0aW9uLCBOZ01vZHVsZVJlZiwgTmdNb2R1bGVGYWN0b3J5TG9hZGVyLCBWaWV3Q29udGFpbmVyUmVmLCBOZ01vZHVsZUZhY3RvcnksIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgQ29tcGlsZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1JlZiB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IEN1c3RvbUFwcEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvY29tcG9uZW50cy9jb21wb25lbnRiYXNlJztcclxuaW1wb3J0IHsgU2hlbGxNb2R1bGVzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NoZWxsLm1vZHVsZXMuc2VydmljZSc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSBcInVuZGVyc2NvcmVcIjtcclxudHlwZSBNb2R1bGVXaXRoQ29tcG9uZW50U2VydmljZSA9IFR5cGU8YW55PiAmIHsgY29tcG9uZW50U2VydmljZTogVHlwZTxhbnk+IH07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcIndvcmstaXRlbXMtZGFpbG9ndWVcIixcclxuICAgIHRlbXBsYXRlVXJsOiBcImFsbC13b3JrLWl0ZW1zLWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBXb3JrSXRlbXNEaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBDdXN0b21BcHBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBPdXRwdXQoKSBjbG9zZVJlcG9ydHNTaGVldFBvcHVwID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBuZ01vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55PjtcclxuICAgIGFsbFdvcmtpdGVtc0NvbXBvbmVudDogYW55O1xyXG4gICAgd2lkZ2V0TGlzdGlucHV0czogYW55O1xyXG4gICAgYWxsV29ya0l0ZW1zaW5wdXRzID0ge1xyXG4gICAgICAgIGlzUG9wdXA6IHRydWVcclxuICAgIH07XHJcbiAgICBpbmplY3RvcjogYW55O1xyXG5cclxuICAgIGFsbFdvcmtJdGVtc291dHB1dHMgPSB7XHJcbiAgICAgICAgY2xvc2VQb3BVcDogZXZlbnQgPT4gdGhpcy5jbG9zZURpYWxvZyhldmVudClcclxuICAgIH07XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBwcm9qZWN0TW9kdWxlc1NlcnZpY2U6IFNoZWxsTW9kdWxlc1NlcnZpY2UsIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLFxyXG4gICAgICAgIHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIHB1YmxpYyByZXBvcnRzRGlhbG9nOiBNYXREaWFsb2dSZWY8V29ya0l0ZW1zRGlhbG9nQ29tcG9uZW50PixcclxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueSwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uTm9DbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlcG9ydHNEaWFsb2cuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLmNsb3NlUmVwb3J0c1NoZWV0UG9wdXAuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9zZURpYWxvZyhldmVudCkge1xyXG4gICAgICAgIHRoaXMucmVwb3J0c0RpYWxvZy5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuaW5qZWN0b3IgPSB0aGlzLnZjci5pbmplY3RvcjtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIHRoaXMubG9hZENvbXBvbmVudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxvYWRDb21wb25lbnQoKSB7XHJcbiAgICAgICAgLy8gdmFyIG1vZHVsZXMgPSB0aGlzLnNoZWxsTW9kdWxlc1NlcnZpY2VbXCJtb2R1bGVzXCJdO1xyXG4gICAgICAgIHZhciBsb2FkZXIgPSB0aGlzLnByb2plY3RNb2R1bGVzU2VydmljZVtcIm1vZHVsZXNcIl07XHJcbiAgICAgICAgdmFyIG1vZHVsZXMgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiTW9kdWxlc1wiKSk7XHJcbiAgICAgICAgdmFyIG1vZHVsZSA9IF8uZmluZChtb2R1bGVzLCBmdW5jdGlvbiAobW9kdWxlOiBhbnkpIHsgcmV0dXJuIG1vZHVsZS5tb2R1bGVQYWNrYWdlTmFtZSA9PSAnUHJvamVjdFBhY2thZ2VNb2R1bGUnIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHZhciBwYXRoID0gbG9hZGVyW21vZHVsZS5tb2R1bGVQYWNrYWdlTmFtZV07XHJcblxyXG4gICAgICAgIChwYXRoKCkgYXMgUHJvbWlzZTxOZ01vZHVsZUZhY3Rvcnk8YW55PiB8IFR5cGU8YW55Pj4pXHJcbiAgICAgICAgICAgIC50aGVuKGVsZW1lbnRNb2R1bGVPckZhY3RvcnkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRNb2R1bGVPckZhY3RvcnkgaW5zdGFuY2VvZiBOZ01vZHVsZUZhY3RvcnkpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBpZiBWaWV3RW5naW5lXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnRNb2R1bGVPckZhY3Rvcnk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIEl2eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlQXN5bmMoZWxlbWVudE1vZHVsZU9yRmFjdG9yeSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pLnRoZW4oKG1vZHVsZUZhY3Rvcnk6IE5nTW9kdWxlRmFjdG9yeTxhbnk+KSA9PiB7XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50U2VydmljZSA9IChtb2R1bGVGYWN0b3J5Lm1vZHVsZVR5cGUgYXMgTW9kdWxlV2l0aENvbXBvbmVudFNlcnZpY2UpLmNvbXBvbmVudFNlcnZpY2U7XHJcblxyXG4gICAgICAgICAgICAgICAgdmFyIGFsbENvbXBvbmVudHNJbk1vZHVsZSA9ICg8YW55PmNvbXBvbmVudFNlcnZpY2UpLmNvbXBvbmVudHM7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5uZ01vZHVsZVJlZiA9IG1vZHVsZUZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICAgICAgICAgIHZhciBjb21wb25lbnREZXRhaWxzID0gYWxsQ29tcG9uZW50c0luTW9kdWxlLmZpbmQoZWxlbWVudEluQXJyYXkgPT5cclxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50SW5BcnJheS5uYW1lID09PSBcIkFsbCB3b3JrIGl0ZW1zXCIpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMud2lkZ2V0TGlzdGlucHV0cyA9IHtcclxuICAgICAgICAgICAgICAgICAgICBpc0Zyb21NeVdvcms6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgaXNNeVdvcms6IHRydWVcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsbFdvcmtpdGVtc0NvbXBvbmVudCA9IHRoaXMubmdNb2R1bGVSZWYuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudERldGFpbHMuY29tcG9uZW50VHlwZU9iamVjdCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY3VzdG9tLWRpYWxvZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbS1jbG9zZVwiIG1hdC1kaWFsb2ctY2xvc2UgKGNsaWNrKT1cIm9uTm9DbGljaygpXCI+XHJcbiAgICAgICAgPGZhLWljb24gaWNvbj1cInRpbWVzXCIgY2xhc3M9XCJwcm9qZWN0LWRpYWxvZ1wiPjwvZmEtaWNvbj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBpZD1cInN0eWxlLTFcIiBjbGFzcz1cInVzZXItZGFpbG9nXCIgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPG5kYy1keW5hbWljIFtuZGNEeW5hbWljRmFjdG9yeV09XCJhbGxXb3JraXRlbXNDb21wb25lbnRcIiBbbmRjRHluYW1pY0NvbXBvbmVudF09XCJhbGxXb3JraXRlbXNDb21wb25lbnRcIlxyXG4gICAgICAgIFtuZGNEeW5hbWljSW5qZWN0b3JdPVwiaW5qZWN0b3JcIlxyXG4gICAgICAgICBbbmRjRHluYW1pY0lucHV0c109XCJ3aWRnZXRMaXN0aW5wdXRzXCIgW25kY0R5bmFtaWNPdXRwdXRzXT1cImFsbFdvcmtJdGVtc291dHB1dHNcIj5cclxuICAgIDwvbmRjLWR5bmFtaWM+XHJcbjwvZGl2PiJdfQ==
|
package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Component, Inject } from "@angular/core";
|
|
2
|
+
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
|
3
|
+
import { select } from "@ngrx/store";
|
|
4
|
+
import { ClearDemoDataTriggred, AuthenticationActionTypes } from "../../store/actions/authentication.actions";
|
|
5
|
+
import { ofType } from "@ngrx/effects";
|
|
6
|
+
import { takeUntil, tap } from "rxjs/operators";
|
|
7
|
+
import { Subject } from "rxjs";
|
|
8
|
+
import * as sharedModuleReducers from '../../store/reducers/index';
|
|
9
|
+
import { GetAllMenuItemsTriggered } from "../../store/actions/menuitems.actions";
|
|
10
|
+
import { MenuCategories } from '../../constants/menu-categories';
|
|
11
|
+
import '../../../globaldependencies/helpers/fontawesome-icons';
|
|
12
|
+
import { WorkspaceList } from '../../models/workspaceList';
|
|
13
|
+
import { LocalStorageProperties } from '../../../globaldependencies/constants/localstorage-properties';
|
|
14
|
+
import { WINDOW } from '../../../globaldependencies/helpers/window.helper';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
import * as i1 from "@angular/material/dialog";
|
|
17
|
+
import * as i2 from "@angular/router";
|
|
18
|
+
import * as i3 from "@ngrx/store";
|
|
19
|
+
import * as i4 from "@ngrx/effects";
|
|
20
|
+
import * as i5 from "../../services/common-used.service";
|
|
21
|
+
import * as i6 from "ngx-cookie-service";
|
|
22
|
+
import * as i7 from "@angular/material/button";
|
|
23
|
+
import * as i8 from "@fortawesome/angular-fontawesome";
|
|
24
|
+
import * as i9 from "@angular/material/card";
|
|
25
|
+
import * as i10 from "@angular/common";
|
|
26
|
+
import * as i11 from "@ngx-translate/core";
|
|
27
|
+
/** @dynamic */
|
|
28
|
+
export class ConfirmationDialogComponent {
|
|
29
|
+
constructor(dialogRef, route, store, actionUpdates$, router, commonService, cookieService, data, window) {
|
|
30
|
+
this.dialogRef = dialogRef;
|
|
31
|
+
this.route = route;
|
|
32
|
+
this.store = store;
|
|
33
|
+
this.actionUpdates$ = actionUpdates$;
|
|
34
|
+
this.router = router;
|
|
35
|
+
this.commonService = commonService;
|
|
36
|
+
this.cookieService = cookieService;
|
|
37
|
+
this.data = data;
|
|
38
|
+
this.window = window;
|
|
39
|
+
this.ngDestroyed$ = new Subject();
|
|
40
|
+
this.actionUpdates$
|
|
41
|
+
.pipe(takeUntil(this.ngDestroyed$), ofType(AuthenticationActionTypes.ClearDemoDataCompleted), tap(() => {
|
|
42
|
+
this.dialogRef.close({ delete: true });
|
|
43
|
+
this.store.dispatch(new GetAllMenuItemsTriggered(MenuCategories.Main));
|
|
44
|
+
this.GetWorkSpaces();
|
|
45
|
+
}))
|
|
46
|
+
.subscribe();
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() { }
|
|
49
|
+
Delete() {
|
|
50
|
+
this.store.dispatch(new ClearDemoDataTriggred());
|
|
51
|
+
this.demoDataDeletionLoading$ = this.store.pipe(select(sharedModuleReducers.getDemoRecordsDataDeletion));
|
|
52
|
+
}
|
|
53
|
+
CancelDelete() {
|
|
54
|
+
this.dialogRef.close({ delete: false });
|
|
55
|
+
}
|
|
56
|
+
GetWorkSpaces() {
|
|
57
|
+
var workspace = new WorkspaceList();
|
|
58
|
+
workspace.workspaceId = "null";
|
|
59
|
+
workspace.isHidden = false;
|
|
60
|
+
this.commonService.GetWorkspaceList(workspace).subscribe((response) => {
|
|
61
|
+
if (response.success) {
|
|
62
|
+
let environment = JSON.parse(localStorage.getItem(LocalStorageProperties.Environment));
|
|
63
|
+
var workspaceId = response.data[0].workspaceId;
|
|
64
|
+
this.cookieService.set("DefaultDashboard", workspaceId ? JSON.stringify(workspaceId) : null, null, environment.cookiePath, this.window.location.hostname, false, "Strict");
|
|
65
|
+
}
|
|
66
|
+
if (this.router.url == "/dashboard-management") {
|
|
67
|
+
window.location.pathname = "/hrmanagment/employeelist";
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
window.location.pathname = "/dashboard-management";
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
ConfirmationDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i2.ActivatedRoute }, { token: i3.Store }, { token: i4.Actions }, { token: i2.Router }, { token: i5.CommonService }, { token: i6.CookieService }, { token: MAT_DIALOG_DATA }, { token: WINDOW }], target: i0.ɵɵFactoryTarget.Component });
|
|
76
|
+
ConfirmationDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.1.1", type: ConfirmationDialogComponent, selector: "app-confirmation-dialog", ngImport: i0, template: "<mat-card-content class=\"text-center\">\r\n <div class=\"card-title-text mb-1\" style=\"font-size:40px;color: gray\">Are you sure you want to delete ?\r\n </div>\r\n <div class=\"text-center\">\r\n <!-- <mat-icon style=\"font-size: 50px\">error_outline</mat-icon> -->\r\n <!-- <i class=\"fa fa-exclamation-circle\" style=\"font-size: 50px\" aria-hidden=\"true\"></i> -->\r\n </div>\r\n</mat-card-content>\r\n<div class=\"text-center mt-1\">\r\n <button class=\"mr-1\" mat-button mat-raised-button color=\"primary\" (click)=\"Delete()\" [disabled]=\"(demoDataDeletionLoading$ | async)\">\r\n <fa-icon class=\"mr-05\" icon=\"check\"></fa-icon> {{ 'YES' | translate }}\r\n <i class=\"fa fa-spin fa-spinner\" *ngIf=\"(demoDataDeletionLoading$ | async)\"></i>\r\n </button>\r\n <button mat-button mat-raised-button (click)=\"CancelDelete()\">\r\n <fa-icon class=\"mr-05\" icon=\"times\"></fa-icon> {{ 'CANCEL' | translate }}\r\n </button>\r\n</div>", components: [{ type: i7.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i8.FaIconComponent, selector: "fa-icon", inputs: ["classes", "icon", "title", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "listItem", "rotate", "fixedWidth", "transform"] }], directives: [{ type: i9.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i10.AsyncPipe, "translate": i11.TranslatePipe } });
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.1.1", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
78
|
+
type: Component,
|
|
79
|
+
args: [{
|
|
80
|
+
selector: "app-confirmation-dialog",
|
|
81
|
+
templateUrl: "./confirmation-dialog.component.html"
|
|
82
|
+
}]
|
|
83
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i2.ActivatedRoute }, { type: i3.Store }, { type: i4.Actions }, { type: i2.Router }, { type: i5.CommonService }, { type: i6.CookieService }, { type: undefined, decorators: [{
|
|
84
|
+
type: Inject,
|
|
85
|
+
args: [MAT_DIALOG_DATA]
|
|
86
|
+
}] }, { type: Window, decorators: [{
|
|
87
|
+
type: Inject,
|
|
88
|
+
args: [WINDOW]
|
|
89
|
+
}] }]; } });
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zaGVsbC1tb2R1bGUtY29tcG9uZW50cy9zaGVsbC1jb21wb25lbnRzL3NyYy9saWIvc2hlbGwtY29tcG9uZW50cy9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi1kaWFsb2cvY29uZmlybWF0aW9uLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQTJCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BGLE9BQU8sRUFBUyxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDOUcsT0FBTyxFQUFXLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxLQUFLLG9CQUFvQixNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUczRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbURBQW1ELENBQUM7Ozs7Ozs7Ozs7Ozs7QUFFM0UsZUFBZTtBQU9mLE1BQU0sT0FBTywyQkFBMkI7SUFLdEMsWUFBbUIsU0FBb0QsRUFBVSxLQUFxQixFQUM1RixLQUFtQixFQUFVLGNBQXVCLEVBQVUsTUFBYyxFQUFVLGFBQTRCLEVBQ2xILGFBQTRCLEVBQ0osSUFBUyxFQUEwQixNQUFjO1FBSGhFLGNBQVMsR0FBVCxTQUFTLENBQTJDO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDNUYsVUFBSyxHQUFMLEtBQUssQ0FBYztRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFTO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ2xILGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ0osU0FBSSxHQUFKLElBQUksQ0FBSztRQUEwQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBTjVFLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQU9sQyxJQUFJLENBQUMsY0FBYzthQUNoQixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDNUIsTUFBTSxDQUFDLHlCQUF5QixDQUFDLHNCQUFzQixDQUFDLEVBQ3hELEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksd0JBQXdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELFFBQVEsS0FBSyxDQUFDO0lBRWQsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksU0FBUyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFDcEMsU0FBUyxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUM7UUFDL0IsU0FBUyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUN6RSxJQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ25CLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN2RixJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQzthQUM1SztZQUNELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksdUJBQXVCLEVBQUU7Z0JBQzlDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLDJCQUEyQixDQUFBO2FBQ3ZEO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFBO2FBQ25EO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzt3SEFqRFUsMkJBQTJCLHdNQVE1QixlQUFlLGFBQTRCLE1BQU07NEdBUmhELDJCQUEyQiwrREMxQnhDLDA4QkFnQk07MkZEVU8sMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFdBQVcsRUFBRSxzQ0FBc0M7aUJBQ3BEOzswQkFVSSxNQUFNOzJCQUFDLGVBQWU7OEJBQW9ELE1BQU07MEJBQXJDLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSBcIi4uLy4uL3N0b3JlL3JlZHVjZXJzL2luZGV4XCI7XHJcbmltcG9ydCB7IENsZWFyRGVtb0RhdGFUcmlnZ3JlZCwgQXV0aGVudGljYXRpb25BY3Rpb25UeXBlcyB9IGZyb20gXCIuLi8uLi9zdG9yZS9hY3Rpb25zL2F1dGhlbnRpY2F0aW9uLmFjdGlvbnNcIjtcclxuaW1wb3J0IHsgQWN0aW9ucywgb2ZUeXBlIH0gZnJvbSBcIkBuZ3J4L2VmZmVjdHNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUm91dGVyLCBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCAqIGFzIHNoYXJlZE1vZHVsZVJlZHVjZXJzIGZyb20gJy4uLy4uL3N0b3JlL3JlZHVjZXJzL2luZGV4JztcclxuaW1wb3J0IHsgR2V0QWxsTWVudUl0ZW1zVHJpZ2dlcmVkIH0gZnJvbSBcIi4uLy4uL3N0b3JlL2FjdGlvbnMvbWVudWl0ZW1zLmFjdGlvbnNcIjtcclxuaW1wb3J0IHsgTWVudUNhdGVnb3JpZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbWVudS1jYXRlZ29yaWVzJztcclxuaW1wb3J0ICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvaGVscGVycy9mb250YXdlc29tZS1pY29ucyc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZUxpc3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvd29ya3NwYWNlTGlzdCc7XHJcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jb21tb24tdXNlZC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29va2llU2VydmljZSB9IGZyb20gJ25neC1jb29raWUtc2VydmljZSc7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxkZXBlbmRlbmNpZXMvY29uc3RhbnRzL2xvY2Fsc3RvcmFnZS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHsgV0lORE9XIH0gZnJvbSAnLi4vLi4vLi4vZ2xvYmFsZGVwZW5kZW5jaWVzL2hlbHBlcnMvd2luZG93LmhlbHBlcic7XHJcblxyXG4vKiogQGR5bmFtaWMgKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFwcC1jb25maXJtYXRpb24tZGlhbG9nXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtYXRpb25EaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgbmdEZXN0cm95ZWQkID0gbmV3IFN1YmplY3QoKTtcclxuICBwdWJsaWMgZGVtb0RhdGFEZWxldGlvbkxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Q29uZmlybWF0aW9uRGlhbG9nQ29tcG9uZW50PiwgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxTdGF0ZT4sIHByaXZhdGUgYWN0aW9uVXBkYXRlcyQ6IEFjdGlvbnMsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIHByaXZhdGUgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29va2llU2VydmljZTogQ29va2llU2VydmljZSxcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LCBASW5qZWN0KFdJTkRPVykgcHJpdmF0ZSB3aW5kb3c6IFdpbmRvdykge1xyXG4gICAgdGhpcy5hY3Rpb25VcGRhdGVzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ0Rlc3Ryb3llZCQpLFxyXG4gICAgICAgIG9mVHlwZShBdXRoZW50aWNhdGlvbkFjdGlvblR5cGVzLkNsZWFyRGVtb0RhdGFDb21wbGV0ZWQpLFxyXG4gICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGRlbGV0ZTogdHJ1ZSB9KTtcclxuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IEdldEFsbE1lbnVJdGVtc1RyaWdnZXJlZChNZW51Q2F0ZWdvcmllcy5NYWluKSk7XHJcbiAgICAgICAgICB0aGlzLkdldFdvcmtTcGFjZXMoKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkgeyB9XHJcblxyXG4gIERlbGV0ZSgpIHtcclxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IENsZWFyRGVtb0RhdGFUcmlnZ3JlZCgpKTtcclxuICAgIHRoaXMuZGVtb0RhdGFEZWxldGlvbkxvYWRpbmckID0gdGhpcy5zdG9yZS5waXBlKHNlbGVjdChzaGFyZWRNb2R1bGVSZWR1Y2Vycy5nZXREZW1vUmVjb3Jkc0RhdGFEZWxldGlvbikpO1xyXG4gIH1cclxuXHJcbiAgQ2FuY2VsRGVsZXRlKCkge1xyXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyBkZWxldGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgR2V0V29ya1NwYWNlcygpe1xyXG4gICAgdmFyIHdvcmtzcGFjZSA9IG5ldyBXb3Jrc3BhY2VMaXN0KCk7XHJcbiAgICB3b3Jrc3BhY2Uud29ya3NwYWNlSWQgPSBcIm51bGxcIjtcclxuICAgIHdvcmtzcGFjZS5pc0hpZGRlbiA9IGZhbHNlO1xyXG4gICAgdGhpcy5jb21tb25TZXJ2aWNlLkdldFdvcmtzcGFjZUxpc3Qod29ya3NwYWNlKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgaWYocmVzcG9uc2Uuc3VjY2Vzcykge1xyXG4gICAgICAgIGxldCBlbnZpcm9ubWVudCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oTG9jYWxTdG9yYWdlUHJvcGVydGllcy5FbnZpcm9ubWVudCkpO1xyXG4gICAgICAgIHZhciB3b3Jrc3BhY2VJZCA9IHJlc3BvbnNlLmRhdGFbMF0ud29ya3NwYWNlSWQ7XHJcbiAgICAgICAgdGhpcy5jb29raWVTZXJ2aWNlLnNldChcIkRlZmF1bHREYXNoYm9hcmRcIiwgd29ya3NwYWNlSWQgPyBKU09OLnN0cmluZ2lmeSh3b3Jrc3BhY2VJZCkgOiBudWxsLCBudWxsLCBlbnZpcm9ubWVudC5jb29raWVQYXRoLCB0aGlzLndpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSwgZmFsc2UsIFwiU3RyaWN0XCIpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnJvdXRlci51cmwgPT0gXCIvZGFzaGJvYXJkLW1hbmFnZW1lbnRcIikge1xyXG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSA9IFwiL2hybWFuYWdtZW50L2VtcGxveWVlbGlzdFwiXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lID0gXCIvZGFzaGJvYXJkLW1hbmFnZW1lbnRcIlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cInRleHQtY2VudGVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUtdGV4dCBtYi0xXCIgc3R5bGU9XCJmb250LXNpemU6NDBweDtjb2xvcjogZ3JheVwiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgP1xyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgPCEtLSA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6IDUwcHhcIj5lcnJvcl9vdXRsaW5lPC9tYXQtaWNvbj4gLS0+XHJcbiAgICA8IS0tIDxpIGNsYXNzPVwiZmEgZmEtZXhjbGFtYXRpb24tY2lyY2xlXCIgc3R5bGU9XCJmb250LXNpemU6IDUwcHhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+IC0tPlxyXG4gIDwvZGl2PlxyXG48L21hdC1jYXJkLWNvbnRlbnQ+XHJcbjxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0xXCI+XHJcbiAgPGJ1dHRvbiBjbGFzcz1cIm1yLTFcIiBtYXQtYnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJEZWxldGUoKVwiIFtkaXNhYmxlZF09XCIoZGVtb0RhdGFEZWxldGlvbkxvYWRpbmckIHwgYXN5bmMpXCI+XHJcbiAgICA8ZmEtaWNvbiBjbGFzcz1cIm1yLTA1XCIgaWNvbj1cImNoZWNrXCI+PC9mYS1pY29uPiB7eyAnWUVTJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgIDxpIGNsYXNzPVwiZmEgZmEtc3BpbiBmYS1zcGlubmVyXCIgKm5nSWY9XCIoZGVtb0RhdGFEZWxldGlvbkxvYWRpbmckIHwgYXN5bmMpXCI+PC9pPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiQ2FuY2VsRGVsZXRlKClcIj5cclxuICAgIDxmYS1pY29uIGNsYXNzPVwibXItMDVcIiBpY29uPVwidGltZXNcIj48L2ZhLWljb24+IHt7ICdDQU5DRUwnIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PiJdfQ==
|